获取远程仓库
git clone
获取远程仓库
首先我们换到其他目录下,将GitHub上的仓库clone到本地。注意不要与之前操作的仓库在同一目录下。
$ git clone git@github.com:weirubo/git-learn.git
Cloning into ‘git-learn’…
remote: Counting objects: 23, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 23 (delta 3), reused 23 (delta 3), pack-reused 0
Receiving objects: 100% (23/23), done.
Resolving deltas: 100% (3/3), done.
Checking connectivity… done.
$ cd git-learn/
执行git clone命令后我们会默认处于master分支下,同时系统会自动将origin设置成该远程仓库的标识符。也就是说,当前本地仓库的master分支与GitHub端远程仓库(origin)的master分支在内容上是完全相同的。
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/feature-D
remotes/origin/master
我们用git branch -a命令查看当前分支的相关信息。添加-a参数可以同时显示本地仓库和远程仓库的分支信息。
结果中显示了remotes/origin/feature-D,证明我们的远程仓库中已经有了feature-D分支。
获取远程仓库的feature-D分支
我们试着将feature-D分支获取至本地仓库
$ git checkout -b feature-D origin/feature-D
Branch feature-D set up to track remote branch feature-D from origin.
Switched to a new branch ‘feature-D’
-b参数的后面是本地仓库中新建分支的名称。为了便于理解,我们仍然将其命名为feature-D,让它与远程仓库的对应分支保持同名。新建分支名称后面是获取来源的分支名称。例子中指定了origin/feature-D,就是说以后名为origin的仓库(这里只GitHub端的仓库)的feature-D分支为来源,在本地仓库中创建feature-D分支。
向本地的feature-D分支提交更改
现在假定我们是另一名开发者,要做一个新的提交。在README.md文件中添加一行文字。
Git Learn
#Git学习
feature-A
fix-B
feature-C
feature-D
查看更改:
$ git diff
diff –git a/README.md b/README.md
index 1fdef41..61c9b62 100644
— a/README.md
+++ b/README.md
@@ -4,3 +4,4 @@ Git Learn
feature-A
fix-B
feature-C
+feature-D
按照之前学过的方式提交即可。
$ git commit -am “Add feature-D”
[feature-D 6a0de29] Add feature-
1 file changed, 1 insertion(+)
推送feature-D分支
现在来推送feature-D分支。
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 284 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:weirubo/git-learn.git
ed3fa4d..6a0de29 feature-D -> feature-D
从远程仓库获取feature-D分支,在本地仓库中提交更改,再将feature-D分支推送回远程仓库,通过这一系列操作,就可以与其他开发者相互合作,共同培育feature-D分支,实现某些功能。
获取最新的远程仓库分支
git pull
现在我们放下刚刚操作的目录,回到原先的那个目录下。这边的本地仓库中只创建了feature-D分支,并没有在feature-D分支中进行任何提交。然而远程仓库的feature-D分支中已经有了我们刚刚推送的提交。这时我们就可以使用git pull命令,将本地的feature-D分支更新到最新状态。当前分支为feature-D分支。
$ git pull origin feature-D
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:weirubo/git-learn
* branch feature-D -> FETCH_HEAD
ed3fa4d..6a0de29 feature-D -> origin/feature-
Updating ed3fa4d..6a0de29
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)
GitHub端远程仓库的feature-D分支是最新状态,所以本地仓库中的feature-D分支就得到了更新。今后只需要像平常一样在本地进行提交再push给远程仓库,就可以与其他开发者同时在同一个分支中进行作业,不断给feature-D增加新功能。
如果两人同时修改了同一部分的源代码,push时就很容易发生冲突。所以多名开发者在同一个分支中进行作业时,为减少冲突情况的发生,建议更频繁地进行push和pull操做。
转载请注明:XAMPP中文组官网 » Git学习之从远程仓库获取