git学习记录7-----从远程仓库获取
获取远程仓库
命令git clone
&emps;&emps;&emps;&emps;首先换到其他目录下,将 GitHub 上的仓库 clone 到本地。不要在和之前本地仓库同一目录下
如果不切换会这样
R@R MINGW64 ~
$ git clone git@github.com:XXXXXXXX/gitlearn.git
fatal: destination path 'gitlearn' already exists and is not an empty directory.
换个目录试一试
R@R MINGW64 ~/Desktop
$ git clone git@github.com:XXXXX/gitlearn.git
Cloning into 'gitlearn'...
Enter passphrase for key '/c/Users/R/.ssh/id_rsa':
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 20 (delta 2), reused 20 (delta 2), pack-reused 0
Receiving objects: 100% (20/20), done.
Resolving deltas: 100% (2/2), done.
&emps;&emps;&emps;&emps;执行 git clone命令后我们会默认处于 master 分支下,同时系统会自动将 origin 设置成该远程仓库的标识符。也就是说,当前本地仓库的 master 分支与 GitHub 端远程仓库(origin)的 master 分支在内容上是完全相同的。
分支如下:
R@R MINGW64 ~/Desktop/gitlearn (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/feature-D
remotes/origin/master
获取远程的 feature-D 分支
将eature-D 分支添加到本地
R@R MINGW64 ~/Desktop/gitlearn (master)
$ git checkout -b feature-D origin/feature-D
Switched to a new branch 'feature-D'
branch 'feature-D' set up to track 'origin/feature-D'.
- b 参数的后面是本地仓库中新建分支的名称
&emps;&emps;&emps;&emps;为了便于理解,我们仍将其命名为 feature-D,让它与远程仓库的对应分支保持同名。新建分支名称后面是获取来源的分支名称。例子中指定了 origin/feature-D,就是说以名为 origin 的仓库(这里指 GitHub 端的仓库)的 feature-D 分支为来源,在本地仓库中创建 feature-D 分支
向本地feature-D提交更改
在README.md加一行
检查不同
R@R MINGW64 ~/Desktop/gitlearn (feature-D)
$ git diff
diff --git a/README.md b/README.md
index 3367333..7632788 100644
--- a/README.md
+++ b/README.md
@@ -3,4 +3,4 @@
- feature-A
- fix-B
- feature-C
-
+ - feature-D
提交
R@R MINGW64 ~/Desktop/gitlearn (feature-D)
$ git commit -am "add feature-D"
[feature-D 01ebf21] add feature-D
1 file changed, 1 insertion(+), 1 deletion(-)
推送feature-D
git push
R@R MINGW64 ~/Desktop/gitlearn (feature-D)
$ git push
Enter passphrase for key '/c/Users/R/.ssh/id_rsa':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 280 bytes | 280.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:R97416032/gitlearn.git
b90b2c6..01ebf21 feature-D -> feature-D
去远程仓库查看一下
获取最新的分支
现在我们离开刚刚修改的目录,回到以前的目录,获取最新的feature-D分支
R@R MINGW64 ~/Desktop/gitlearn (feature-D)
$ cd
R@R MINGW64 ~
$ cd gitlearn/
R@R MINGW64 ~/gitlearn (master)
注意目录变啦!
R@R MINGW64 ~/gitlearn (master)
$ git pull origin feature-D
Enter passphrase for key '/c/Users/R/.ssh/id_rsa':
Enter passphrase for key '/c/Users/R/.ssh/id_rsa':
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), 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), 260 bytes | 28.00 KiB/s, done.
From github.com:R97416032/gitlearn
* branch feature-D -> FETCH_HEAD
b90b2c6..01ebf21 feature-D -> origin/feature-D
Updating b90b2c6..01ebf21
Fast-forward
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
看一下README.md更新了没
&emps;&emps;&emps;&emps;GitHub 端远程仓库中的 feature-D 分支是最新状态,所以本地仓库中的 feature-D 分支就得到了更新。今后只需要像平常一样在本地进行提交再 push 给远程仓库,就可以与其他开发者同时在同一个分支中进行作业,不断给 feature-D 增加新功能。如果两人同时修改了同一部分的源代码,push 时就很容易发生冲突。所以多名开发者在同一个分支中进行作业时,为减少冲突情况的发生,建议更频繁地进行 push 和 pull 操作。