git修改后git合并冲突 - "你的分支和' origin / master'分歧了#34;

时间:2017-04-08 02:12:03

标签: git merge-conflict-resolution amend

这就是:

  1. 在最近提交给远程主人之后,我对我的本地仓库做了一个小小的改变
  2. 我添加git commit --amend并保留与HEAD相同的提交消息
  3. 我尝试使用git push
  4. 将回购推送到主人

    现在我得到了

    On branch master
    Your branch and 'origin/master' have diverged,
    and have 1 and 1 different commit each, respectively.
      (use "git pull" to merge the remote branch into yours)
    nothing to commit, working directory clean
    

    我想明白:

    1. 为什么会这样?
    2. 我该怎样做才能防止这种情况发生?
    3. 在git修改后如何协调master和local?

2 个答案:

答案 0 :(得分:8)

您更改了现有的推送提交,创建了自己的版本(因为其内容已更改)

 --x---Y (master: that is the X amended)
    \
     --X (origin/master)

这就是为什么你在master和origin / master之间分别有1个和1个不同的提交

  

我该怎么做才能防止这种情况发生?

不要“修改”现有的推送提交(仅限本地尚未推送的提交)

  

在git修改后如何协调master和local?

只需在origin / master上重新设置,然后按

git rebase origin/master

 --x--X---Y' (master)
      |
(origin/master)

git push

 --x--X---Y' (master, origin/master)

答案 1 :(得分:1)

如果您是修改后唯一从事该项目的人,则可以运行

git push -f origin master

如果您不是唯一从事此项目的人,请小心所做的事情,因为它是重写历史。

这是一篇有关amend的好文章:
https://medium.com/@igor_marques/git-basics-adding-more-changes-to-your-last-commit-1629344cb9a8