Git – 拉取(git pull)远程更改

git fetch获取远程更改时,不会自动与本地分支合并,可以使用git pull手动合并。

git pull的作用是从一个仓库或者本地的分支拉取并且集成代码。git pull相当于 git fetch 跟着一个 git merge FETCH_HEAD

git pull的过程如下图所示:

图

示例

执行git pull:

Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git pull
Auto-merging test1.txt
hint: Waiting for your editor to close the file...
Merge made by the 'recursive' strategy.
 test1.txt | 1 +
 1 file changed, 1 insertion(+)

拉取时本地有未提交修改

本地有未提交修改,拉取远程更改时,如果会覆盖本地修改,Git会提示先提交或储藏(git stash)本地修改,防止丢失。

示例

本地修改test1.txt,不提交,然后执行git pull,看看本地修改会不会丢失。


Kevin@qikegu MINGW64 /g/project/git-demo (master) $ git pull remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Compressing objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/kevinhwu/git-demo adac694..77d5d2d master -> origin/master error: Your local changes to the following files would be overwritten by merge: test1.txt Please commit your changes or stash them before you merge. Aborting

可以看到,本地修改不会丢失,git提示2个解决办法:

  1. 提交 – 这个方法前面章节已经详细介绍过
  2. 储藏(git stash)本地修改

那么方法2是怎么回事呢,下一章节我们将介绍。



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载