Git远程库命令
SSH加密设置
注册GitHub账号,由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
- 创建SSH Key。
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
然后一路回车,使用默认值即可,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
-
登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
image.png
点“Add Key”,你就应该看到已经添加的Key:
image.png为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
远程仓库相关命令
- 先有本地库,后有远程库的时候,如何关联远程库,关联远程库命令
git remote add origin <git@server-name:path/repo-name.git>
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
- 删除已关联的远程库:
git remote rm origin
- 第一次推送master分支的所有内容
git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
- 把当前分支推送给指定远程库分支
git push origin <branch-name>
- 克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆
git clone <git@server-name:path/repo-name.git>
Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令。
- 从远程拉取更新
git pull
- 将远程分支拉取到本地
git pull origin dev(dev为远程分支名)
- 查看远程库的信息
git remote
或者显示更详细的信息
git remote -v
- 检出指定远程仓库分支到本地本地分支,并切换
git checkout -b <local-branch-name> origin/<origin-branch-name>
- 建立本地分支和远程分支的关联
git branch --set-upstream <local-branch-name> origin/<origin-branch-name>//新版本已经不支持,可使用下面的命令
git branch --set-upstream-to=origin/<origin-branch-name> <local-branch-name>
- 将远程分支拉到本地
git fetch origin dev(dev即分支名)
多人协作的工作模式
- 首先,可以试图用git push origin <branch-name>推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。