参考链接:https://blog.csdn.net/chailyuan/article/details/53292031
在下载一个较大的github项目以后,当该项目代码更新以后,我们想将更新的内容与本地的代码同步。
方法1
这种方式比较简单也好理解,如果本地代码没有修改,只需要执行中间两行就可以。
git stash # 暂存本地的修改 git fetch --all # 拉取项目更新 git pull # 下载覆盖 git stash pop # 释放本地修改
方法2
0x01 查看远程分支
使用如下命令可以查看远程仓库(我这里有一个origin仓库)
$ git remote -v origin git@github.com:username/Animations.git (fetch) origin git@github.com:username/Animations.git (push)
0x02 从远程获取最新版本到本地
使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
$ git fetch origin master:temp remote: Counting objects: 18, done. remote: Compressing objects: 100% (6/6), done. remote: Total 11 (delta 3), reused 0 (delta 0) Unpacking objects: 100% (11/11), done. From github.com:username/Animations * [new branch] master -> temp c07bdc7..40f902d master -> origin/master
0x03 比较本地仓库与下载的temp分支
使用如下命令来比较本地代码与刚刚从远程下载下来的代码的区别:
$ git diff temp diff --git a/README.md b/README.md deleted file mode 100644 index 76699ed..0000000 --- a/README.md +++ /dev/null @@ -1,6 +0,0 @@ -Animations
0x04 合并temp分支到本地的master分支
对比区别之后,如果觉得没有问题,可以使用如下命令进行代码合并:
$ git merge temp Updating c07bdc7..40f902d Fast-forward README.md | 6 ++++++ src/cn/exercise/animations/MainActivity.java | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 README.md
0x05 删除temp分支
如果temp分支不想要保留,可以使用如下命令删除该分支:
$ git branch -d temp
Deleted branch temp (was 40f902d).
如果该分支的代码之前没有merge到本地,那么删除该分支会报错,可以使用git branch -D temp强制删除该分支。