git远程命令

来源:互联网 发布:webdriver 执行js 编辑:程序博客网 时间:2024/06/05 08:37
Copy from:
http://www.ruanyifeng.com/blog/2014/06/git_remote.html

在当前git仓库中,#git remote -v;查看fetch和push地址,例如:
#git remote -v
origin    https://github.com/shenghp312/hello-world.git (fetch)
origin    https://github.com/shenghp312/hello-world.git (push)

git pull = git fetch + git merge

git fetch从远程获取最新版本到本地,而pull不是和远程分支直接对话的。
git pull在fetch后,直接merge。
所以,最好先fetch,再选择性的进行merge。
git push,默认推送到master分支,如果有多个分支,那么多个分支一起推送。

下面图片:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
git
一、clone
#git clone <版本库网址>
#git clone https://github.com/jquery/jquery.git

二、remote
为了便于管理,Git要求每个远程主机都必须指定一个主机名。
git remote就用于管理主机名。
1.不带选项的时候,列出所有远程主机
#git remote
origin
2.使用-v选项,可以看到远程主机的网址
#git remote -v
origin    https://github.com/shenghp312/hello-world.git (fetch)
origin    https://github.com/shenghp312/hello-world.git (push)
当前只有一台主机,叫做Origin,以及它的地址。
clone版本的时候,所使用的远程主机被Git自动命名为Origin。如果想改变,可以在clone时使用-o选项。
3.查看主机详细信息
#git remote show <主机名>
#git remote show origin
4.git remote add <主机名> <主机网址>
5.git remote rm <主机名>
6.git remote rename <原主机名> <新主机名>

7. checkout
#git checkout -b <本地分支名> <远程主机名>/<远程分支名>

三、fetch
一旦远程主机的版本库有了更新(Git叫commit),需要将这些更新取回本地,这是就需要git fetch命令。
git fetch通常用来查看其他人的更新,取回的代码树对你本地的开发代码没有影响。
默认情况下,git fetch取回所有分支。如果想取回特定分支,可以指定。
#git fetch <主机名> <分支名>
比如#git fetch origin master

所取回的更新,在本地机器上可以使用<主机名>/<分支名>的方式读取。
#git branch -r #用来查看远程分支

可以使用merge或者rebase在本地分支上面合并远程分支。

四、pull
取回远程主机某个分支的更新,再与本地指定的分支合并。
#git pull <远程主机名> <远程分支名>:<本地分支名>
#git pull origin master:master
如果远程分支与当前分支合并,则冒号后面的本地分支名可以省略。

在某些场合,Git会自动在本地分支与远程分支之间建立一种追踪关系(tacking)。比如,在git clone的时候,所有本地分支默认与默认的远程主机的同名分支,建立追踪关系。
也就是说,本地master分支自动“追踪”origin/master分支。
Git也允许手动建立追踪关系
#git branch --set-upstream master origin/master

如果当前分支与远程分支存在追踪关系,那么pull命令就可以省略分支名。
#git pull origin

如果当前分支只有一个追踪分支,那么远程主机名也可以省略。

如果远程主机删除了某个分支,默认情况下,git pull不会在拉取远程分支的时候,删除对应的本地分支。
这是为了方式,由于其它人操作了远程主机,导致git pull不知不觉删除了本地分支。
可以使用-p参数改变这个行为。
#git pull -p
等同于:
#git fetch --prune origin
#git fetch -p

五、push
用于将本地分支的更新,推送到远程主机。
#git push <远程主机名> <本地分支名>:<远程分支名>   #注意分支名称的顺序
如果省略远程分支名,则将本地分支推送到与之存在追踪关系的远程分支。如果该远程分支不存在,则建立。
#git push origin master

#git push origin :master #删除远程分支master,与下面等价
#git push origin --delete master

如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支名都可以省略。
#git push origin