By francis_hao Nov 19,2016
以一张图说明远程操作,图片来自参考[2]
git clone
从远端主机克隆一个版本库,若省略directory则生成一个和远端同名的版本库。
$ git clone <repository> [directory]
git clone支持的一些远端主机协议
$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/
git remote
git要求每个远端主机都必须指定一个主机名,git remote命令就用于管理主机名
查看远端主机,这里有一个默认的远端主机origin,git clone时候默认的主机名
$ git remote
查看远端主机的地址
$ git remote -v
查看主机的详细信息
$ git remote show origin
添加远端主机
$ git remote add <主机名> <地址>
删除远端主机
$ git remote rm <主机名>
重命名远端主机
$ git remote rename <原主机名> <新主机名>
git fetch
从远端主机将更新取回本地,但不做合并。
取回远端主机上的所有分支
$ git fetch <远端主机名>
取回远端主机上的指定分支
$ git fetch <远端主机名> <分支名>
查看所有分支,包括本地分支和远端主机的分支
$ git branch -a
查看远端主机分支
$ git branch -r
git pull
取回远端主机某个分支的更新,并与本地的指定分支合并
$ git pull <远程主机名> <远程分支名><:本地分支名>
如果省略本地分支名,表示将远程分支与当前所在分支合并
如果连远程分支名也省略了,表示将本地和远程主机建立追踪关系的分支(通常是同名分支)取回并合并
如果连远程主机名也省略了,则表示本地仅与一个远程主机的一个分支建立了追踪关系。
手动建立追踪关系,将本地master分支追踪origin/next分支
$ git branch --set-upstream master origin/next
git push
将本地分支的更新,推送到远程主机
$ git push <远程主机名> <本地分支名><:远程分支名>
如果省略远程分支名,则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
如果连本地分支名也省略了,则表示将当前分支名推送到与之存在追踪关系的远程分支
如果连远程主机名也省略了,则表示将当前分支推送到仅有的一个远程主机的建立了追踪关系的分支上。
如果仅省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
推送并指定一个默认的远程主机名,以便下次直接使用不带参数的git push命令
$ git push -u origin master:master
本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 * 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/6081897.html
参考
[1] 蒋鑫.《git权威指南》北京:机械工业出版社,2011.6
[2] 阮一峰 http://www.ruanyifeng.com/blog/2014/06/git_remote.html git远程操作详解