我们知道无论是分布式版本控制系统还是集中式版本控制系统,如果要实现多人协作,都需要一个远程服务器,具体针对某一项目来说,就是一个远程仓库。
无论使用什么版本控制工具,对于每一个成员而言,无外乎就是共享数据(push or pull),而这些协作都需要通过一个处于远端主机上的远端仓库完成。本篇主要介绍Git如何与远端主机进行操作,主要包括:添加和移除远端主机,添加远程仓库,管理远程分支等。
添加远端主机(git remote add / git clone)
我们首先要了解如何显示地添加一个远端主机,在Git中有两种方式添加远端主机:可以分为显式或隐式。
在未添加远端主机之前,查看主机信息为空:

隐式添加(git clone)
隐式添加远端主机的方式就是使用git clone <远端地址>指令,在克隆远端仓库的同时,
会自动添加该远端主机到当前目录,并且默认主机名为origin:

查看信息:

显示添加(git remote add)
很多时候我们也需要显示添加远端主机,这需要使用git remote add <主机别名>
<远端地址>指令显式添加一个远端主机:

指令中,主机别名参数为自定义指定,远端地址即远端服务器上的访问地址。
再查看其主机信息,则会有如下显示:

另一点我们需要清楚的是,可以为某一目录指定任意数量远端主机。
查看远端主机信息(git remote)
我们可以使用git remote指令查看当前仓库指定的所有远端主机的简要信息:别名列表,
当然还有添加-v选项,查看详细信息列表:

查看特定主机信息(git remote show)
我们也可以查看某一特定远端主机的详细信息,使用git remote show <主机别名>如:

如上,我们可以看到详细信息,远端地址,远程所有分支,
及在各本地分支上使用git pull或git push指令操作时对应的远程分支。
数据共享(git fetch & git pull & git push)
添加远程主机后,我们可以与主机共享代码或文件。
git fetch
使用git fetch <主机名> [远程分支,可选]:[新建本地分支,可选]指令,即会将该主机地址对应的远程仓库中所有数据(包括所有分支)拉取到本地,前面提到的隐式添加远端主机git
clone方式已包含这一过程:

如上,我们已经将远端react仓库的所有分支,下载到本地的对应分支(此处只有master分支,其下载到本地的react/master分支),我们可以将这些本地分支合并到其他分支或在这些本地分支的基础上检出(check
out)新分支。
当指定远程分支名时,如下:

将远端origin仓库的master分支下载到本地并新建一个本地分支temp。
git pull
除了使用git fetch指令拉取远程数据,还可以使用git pull <主机名> <远程分支>指令拉取远程特定分支的所有数据:

其与git fetch的差别有两点:
gi pull需要指定特定远程分支参数
git pull指令会自动拉取数据并将其合并至当前分支,而git fetch只是拉取所有数据及分支,不影响本地数据,我们需要手动合并。
git push
git fetch及git pull对应的另一个指令则是git push <主机名>
<本地分支>,使用该指令可以向远端推送分支数据:

重命名远端主机别名(git remote rename)
Git也支持我们重命名之前添加过的远端主机别名:
git remoet rename <旧主机别名> <新别名>

删除远端主机别名(git remote remove|rm)
使用git remote remove|rm <主机别名>指令删除远端主机:

本篇关于Git远端主机(remote)的相关介绍就结束了,其中涉及到部分Git分支相关操作
|