使用 git config
配置git参数,如下:
git config --global user.name "xxxx" git config --global user.email "<xxx@xxx.com>" git config --global core.editor vim git config --global core.fileMode false git config --global --list |
这里配置的是全局配置,会应用到所有git仓库和操作,这些配置存储在~/.gitconfig文件中,如下:
[user] email = xxx@xxx.com name = xxxx [core] editor = vim fileMode = false |
除了全局配置,还可以针对每个仓库进行具体的配置,转到对应的仓库下,使用 git config
命令即可。
这一步在本地生成用于加密通信的密钥对,生成的公钥可以登记到Git服务器,比如GitHub,这样本地就可以对远程仓库进行操作。加密通信原理可参考 SSL加密通信原理,本地生成密钥的命令如下:
ssh-keygen -t rsa -b 4096 -C "<xxx@xxx.com>" |
这里指定了加密算法是RSA,长度是4096 bits。生成的SSH密钥对位于 ~/.ssh
目录,其中的id_rsa.pub
是公钥,用于提供给Git服务器,id_rsa
是私钥,需妥善保管。
git clone git@github.xxx/xxx [目标文件夹] |
这里目标文件夹可选,如果没有指定则以仓库名创建文件夹。
git add xxxx git commit -m "your commit message" git push origin master |
git stash git stash pop |
git checkout . git reset --hard HEAD |
git clean -df #强制删除本目录下未跟踪的文件和文件夹 |
远程仓库名:origin
远程仓库的各种分支:master, branch1, branch2, ...
git clone 远程仓库后,本地会有远程仓库的完整副本,所以自带程远程仓库的全部分支。并且,git在执行clone后会自动检出master分支,这可以通过git branch -a查看
上面红色的分支是远程仓库中的分支,绿色的是本地分支。本地分支可以和远程分支建立对应关系,以便于将本地分支的修改推送到某一个远程分支。查看本地分支和远程分支的对应关系使用git branch -vv命令,如下:
并不是全部的本地分支都需要和远程分支建立对应关系,例如使用命令git branch 分支名称创建的分支就没有对应的远程分支。如果要检出某个远程分支,则使用命令 git checkout -b 本地分支名称 origin/远程分支名称。当执行git push时,只能push到当前分支的远程分支上,而不能跨分支进行push。忽略参数进行git push时,默认push到当前分支的upstream branch上。
git pull <远程仓库名> <本地分支名>:<远程分支名> |
拉取远程分支并与指定的本地分支合并,如果与本地的当前分支合并,则可以省略本地分支名,如果本地分支名不存在,则会创建对应的本地分支,可用于将其他分支的修改合并到当前分支。
git push --set-upstream origin <远程分支名> |
将本地创建的分支提交到指定的远程分支上,并与之建立对应关系,适用于将git branch创建的未与远程分支建立对应关系的分支推送到远程仓库并创建对应的远程分支。
git remove -v origin git@github.com:zhongluqiang/blog.git (fetch) origin git@github.com:zhongluqiang/blog.git (push) |
查看远程仓库的详细信息。
git reset HEAD xx |
撤销git add添加的文件。
远程仓库中删除某分支后,本地的追踪分支并不会自动删除,这时,可以使用 git remote prune
命令,这个命令用于删除本地仓库中失效的远程追踪分支,首先使用以下命令查看哪些分支已失效git remote prune origin --dry-run
再执行 git remote prune
即可清理无效的远程追踪分支。