如何解决本地仓库和远程仓库的冲突(Conflict)

Background:

  我有一个github仓库管理我的代码,我将这个仓库的代码clone到我的工作电脑和私人电脑本地方便我上班和在家时都可以对我的代码进行更新。

一天,我在家修改过代码之后并未提交,我上班时做了在家已经做过,但是未提交的那部分代码的更新工作,在下班时我提交了我所做的修改。

我下班回家之后,想review今天提交过的代码,发现执行 git status 命令总会有以下信息:

git status
On branch master
Your branch is ahead of 'origin/master' by 4 commits.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean

Workaround: 

我然后执行了,

bpan@5CG7022BM2 MINGW64 /d/GitRep/JIRA_Extensions (master)
$ git fetch origin master
From https://github.com/962720900/JiraExtensionFunctions
 * branch            master     -> FETCH_HEAD

bpan@5CG7022BM2 MINGW64 /d/GitRep/JIRA_Extensions (master)
$ git log -p master.. origin/master

bpan@5CG7022BM2 MINGW64 /d/GitRep/JIRA_Extensions (master)
$ git merge origin/master
Already up-to-date.

我查看本地文件并没有和远程仓库同步,

然后我查了一些文档,更新远程仓库到本地的有以下两个方式,

//方法一
$ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master

$ git log -p master.. origin/master//比较本地的仓库和远程参考的区别

$ git merge origin/master//把远程下载下来的代码合并到本地仓库,远程的和本地的合并

//方法二
$ git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建一个分支temp

$ git diff temp//比较master分支和temp分支的不同

$ git merge temp//合并temp分支到master分支

$ git branch -d temp//删除temp

我也尝试了,也失败了,最有下面这个命令解决了这个问题,

git reset --hard origin/master

  

posted @ 2018-03-16 11:01  潘彬  阅读(560)  评论(0编辑  收藏  举报