Git 轻松入门学习笔记(四)
开始之前
这篇开始之前请先百度: “GitHub 创建项目” 词条,了解创建一个自己GitHub的云端项目仓库。以下内容视为你已经知道如何创建一个简单的项目。
自己在本章学习的时候遇到了不少困惑。但是在理解了一些后面的知识之后,就感觉没有难度了。所以现在的一些疑惑可以放一放。
远程仓库的使用
首先,我使用自己创建的Github项目为例子。把云端项目克隆到本地。
使用$ git clone
指令把项目克隆到本地。
查看远程仓库
$ git remote
查看每一个远程服务器的简写名字。
$ git remote -v
-v
选项可以详细显示简写名字的对应URL。
添加远程仓库
$ git remote add <shortname> <url>
添加一个远程仓库,并且可以轻松使用缩写来代替URL。
这里我使用的是同一个URL,但是实际情况因该是不一样的URL。
从远程仓库抓取与拉取
$ git fetch [remote-name]
从远程仓库(URL简写对应的远程仓库)拉去所有你没有的数据和分支。这里的这个例子有点特殊。我重新创建一个空的本地仓库,然后使用$ git remote add <shortName> <URL>
来添加一个远程仓库,然后再使用$ git fetch [remote-name]
来从远程仓库拉取数据。
注意:下面的内容使用到了未介绍的分支的知识。也是我当时卡在这里的原因。所以,看的时候有疑惑,可以先跳过一些。
有关fetch
的更多知识请务必看:git fetch命令
这里我使用fetch
拉取了云端仓库到本地,但是可以看到文件夹里没有任何文件。然后我添加了一个新的文件并且提交到了本地仓库。为了说明这是一个新的仓库,而不是我从云端拉取下来的云端仓库。那我们从云端拉取下来的仓库到哪里去了呢?我看到这里的时候,困惑了很久。原来,从云端拉去下来的仓库是一个独立的分支。那我们如何查看呢。
使用$ git branch -a
指令,可以看到我们的分支里面多了一个红色的云端分支。
使用$ git checkout -b newBranch origin/master
来创建一个新的分支newBranch
并且转到newBranch
分支。现在使用ls
可以看到我们拉取下来的云端仓库的内容了。
但是,当我想要合并当前的master分支和newBranch分支的时候失败了,说明了,这两个分支是独立的。但是当本地的数据是当前云端数据的之前的版本的话,是可以合并的。
官方手册也提到了:必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。但是给人感觉很隐晦,不是很清楚。
官方手册还提到,可以使用$ git pull
指令来自动抓取然后合并远程分支到本地当前分支。运行$ git pull
通常会从最初的克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。
推送到远程分支
$ git push <shortName> <Branch>
推送项目到目的URL服务器。
你需要有这个Git服务器的写入权限。官方手册给的注意: 当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。 你必须先将他们的工作拉取下来并将其合并进你的工作后才能推送。
查看远程仓库
$ git remote show <urlShortName>
查看指定远程仓库的信息。
这里推荐去官方文档里面详细看一下,这里的信息的相关意思。
远程仓库的移除与重命名
$ git remote rename <oldName> <newName>
值得注意的是这同样也会修改你的远程分支名字。 那些过去引用<oldName>/master
的现在会引用 <newName>/master
。
$ git remote rm <urlShortName>
删除远程仓库。
小结
这一节有不少东西提前涉及到了分支的知识,然后fetch
的用法,值得注意。
上一篇文章:Git 轻松入门学习笔记(三)
To be continue...