Git快速入门

2020-02-06  本文已影响0人  啊呀哟嘿

虽然日常工作中经常使用git,但是在面对一些特殊情况时仍会捉襟见肘。在这里整理一些常见操作和常见问题。对于更详细的介绍,建议参考官方文档

简介

我们都知道,git是一个版本控制工具,而github、gitlab等则是基于git的代码托管平台。Git中比较常见的概念有仓库、暂存区、工作区、分支等。

安装和配置

基本操作

大文件存储(Git LFS)

在一些工程中,可能会需要对一些大文件进行版本控制,比如二进制文件。如果像代码那样使用git进行管理,会导致工程文件空间过于庞大(git会默认存储所有的版本)。Git LFS应运而生。LFS是Large File Storage大文件存储的缩写,Git LFS是针对大文件存储开发的工具。
Git LFS可以通过apt安装。

sudo apt install git-lfs

在工程中,可以通过如下命令开启git lfs功能:

git lfs install

需要使用Git LFS存储的文件可以通过git lfs track命令,或者通过修改.gitattribute文件设置。比如:

git lfs track "*.iso"

.gitattributes文件同样需要被git跟踪:

git add .gitattributes

被跟踪的大文件可以像git下的其他文件一样跟踪、提交和推送:

git add file.iso
git commit -m "Add disk image"
git push

常见问题

忽略文件/目录

如果想在工程内忽略特定文件或目录(比如build目录),可以通过编辑.gitignore文件实现。注意,已经被跟踪的文件将不会被忽略。

管理多个SSH-Key

当本地有多个SSH-Key的时候,需要配置~/.ssh/config文件来区分不同Host使用的key,比如:

# ~/.ssh/config
#github
    Host github.com
    IdentityFile ~/.ssh/id_rsa_github
    User MyUserName

#gitlab
    Host gitlab.com
    IdentityFile ~/.ssh/id_rsa_gitlab
    User MyUserName

ssh-agent

ssh-agent是linux 系统上的一个程序,这个程序可以控制和保存公钥身份验证所使用的私钥程序。可以帮助我们管理ssh的密码。
启动方式如下:
eval `ssh-agent`
添加新的ssh-key:
ssh-add ~/.ssh/id_rsa
当 ssh-add 把私钥交给 ssh-agent 来管理时,其他程序需要身份验证的时候都可以申请交给 ssh-agent 来完成整个认证过程。(参考

config优先级

git config命令配置的变量存储在三个不同的位置:

每一个级别覆盖上一级别的配置,所以.git/config的配置变量会覆盖/etc/gitconfig中的配置变量。

更改commit的作者信息

git commit --amend --reset-author

ssh相关:

ssh使用非对称加密。类似于github等平台,我们可以设置让本地与另一台电脑或服务器的ssh连接免密码:在对方电脑~/.ssh/目录下添加authorized_keys文件,里面输入本机的公钥。

上一篇 下一篇

猜你喜欢

热点阅读