Git版本控制(4) ——远程操作详解

上一节介绍了如果创建远程仓库,这一节我们再来学习一些远程操作详解详解。
Git有很多优势,其中之一就是远程操作非常简便。在这里,列出几个远程操作的指令,非常方便。在这里,首先是要感谢阮一峰学长的blog

git clone

git clone https://github.com/jquery/jquery.git

该命令会在本地主机生成一个目录,与远程主机的版本库同名。如果要指定不同的目录名,可以将目录名作为git clone命令的第二个参数。

git clone <版本库的网址> <本地目录名>

git remote

为了便于管理,Git要求每个远程主机都必须指定一个主机名。git remote命令就用于管理主机名。不带选项的时候,git remote命令列出所有远程主机。

git remote
origin

git fetch
一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。

git fetch origin

上面命令将某个远程主机的更新,全部取回本地。git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响。默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。比如说我们想取回取回origin主机的staging分支。

git fetch origin staging

所取回的更新,在本地主机上要用”远程主机名/分支名”的形式读取。比如origin主机的master,就要用origin/staging读取。
git branch命令的-r选项,可以用来查看远程分支,-a选项查看所有分支。

git branch -r
*origin/master

git branch -a
* master
* remotes/origin/master

git pull

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。

git pull <远程主机名> <远程分支名>:<本地分支名>

比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。

扫描二维码关注公众号,回复: 1746742 查看本文章
git pull origin next:master

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

git pull origin next

上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。

git fetch origin
git merge origin/next

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

Git也允许手动建立追踪关系:

git branch --set-upstream master origin/next

如果当前分支只有一个追踪分支,连远程主机名都可以省略:

git pull

git拉取远程分支并创建本地分支
在项目,我们常常遇到一种情况,那就是某个同事在远程仓库创建了一个分支,我们需要从远端把分支拉取下来。

首先,我们回顾一下查看远程分支的方法:

git branch -r

然后是拉取远程分支并创建本地分支,这也算是对git fetch方法的一个回顾:

git checkout -b 本地分支名x origin/远程分支名x

使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系。

git fetch origin 远程分支名x:本地分支名x

使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout,采用此种方法建立的本地分支不会和远程分支建立映射关系。

回顾一下手动建立追踪关系的git指令:

git branch --set-upstream 本地分支名x origin/本地分支名x

猜你喜欢

转载自blog.csdn.net/zyhmz/article/details/80298743
今日推荐