参考链接:https://blog.csdn.net/chailyuan/article/details/53292031
搬运自:https://www.cnblogs.com/zhaijiahui/p/9006816.html
在下载一个较大的github项目以后,当该项目代码更新以后,我们想将更新的内容与本地的代码同步。这次终于找到一个可用的方法,赶紧记录一下。
1 查看远程分支
使用如下命令可以查看远程仓库(我这里有一个origin仓库)
$ git remote -v origin git@github.com:username/Animations.git (fetch) origin git@github.com:username/Animations.git (push)
2 从远程获取最新版本到本地
使用如下命令可以在本地新建一个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
3 比较本地仓库与下载的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
4 合并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
5 删除temp分支
如果temp分支不想要保留,可以使用如下命令删除该分支:
$ git branch -d temp
Deleted branch temp (was 40f902d).
如果该分支的代码之前没有merge到本地,那么删除该分支会报错,可以使用git branch -D temp强制删除该分支。
6. 与本地冲突,合并分支时,报错,本地有修改,未提交也没有删除。如果强行合并会丢失本地的修改。这是就要做出判断,提交到本地,还是删除本地修改了。
error: Your local changes to the following files would be overwritten by merge
保存修改
git stash
git pull origin master
git stash pop
不保存
git reset --hard
git pull origin master