远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。 管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支,等等。
查看当前的远程库
使用 git remote
命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库:
1 | $ git clone git://github.com/schacon/ticgit.git |
使用 git remote -v
命令可以显示出远程仓库的地址:
1 | $ git remote -v |
添加远程仓库
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]
:
1 | $ git remote add paul git://github.com/paulboone/ticgit.git |
从远程仓库抓取数据
1.抓取并但不合并分支,使用命令 git fetch [remote-name] [branch-name]
。
1 | $ git fetch paul master |
2.抓取并且自动合并分支,使用命令 git pull [remote-name] [branch-name]
。
1 | $ git pull origin master |
推送数据到远程仓库
使用命令 git push [remote-name] [branch-name]
把本地的 master 分支推送到 origin 服务器上 :
1 | $ git push origin master |
符合下面两种情况才能成功推送:
- 拥有远程仓库写的权限。
- 在符合1的情况下,如果其他人已经向远程仓库推送了更新,必须先更新抓取到本地,合并到自己的项目中,然后才可以再次推送。
查看远程仓库信息
1 | $ git remote show origin |
远程仓库的删除和重命名
使用 git remote rename
命令修改某个远程仓库在本地的简称,比如想把 paul 改成 paulboone:
1 | $ git remote rename paul paulboone |
对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 paul/master 分支现在成了 paulboone/master
使用命令 git remote rm
删除在本地的远程仓库地址:
1 | $ git remote rm paulboone |
《Pro Git》学习笔记