首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >git修改后的git合并冲突--“您的分支和‘来源/主人’已经分化了”。

git修改后的git合并冲突--“您的分支和‘来源/主人’已经分化了”。
EN

Stack Overflow用户
提问于 2017-04-08 02:12:03
回答 2查看 6.1K关注 0票数 19

这就是发生的事情:

  1. 在最近一次对远程主人的承诺之后,我对我的本地回购做了一个小的小改动。
  2. 我添加git commit --amend并留下与HEAD相同的提交消息
  3. 我试着用git push把回购推向掌握

现在我得到了

代码语言:javascript
运行
复制
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后,我该如何与本地协调呢?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-08 05:16:23

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

代码语言:javascript
运行
复制
 --x---Y (master: that is the X amended)
    \
     --X (origin/master)

这就是为什么在主和源/主之间有1和1不同的提交。

我能做些什么来防止这件事?

不要“修改”现有的推送提交(只有本地的未被推送的提交)

在修改完git后,我该如何与本地协调呢?

简单地重新建立在原点/主人的顶端,然后推。

代码语言:javascript
运行
复制
git rebase origin/master

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

git push

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

然而,jwinnthe comments中指出,它可能意味着您的修改已经消失("warning: skipped previously applied commit"),而不是让您的本地修改(在已经被推送的提交)到origin/master的方式。

票数 21
EN

Stack Overflow用户

发布于 2020-02-20 10:25:52

如果只有您在修改后才在项目上工作,您就可以运行

代码语言:javascript
运行
复制
git push -f origin master

如果你不是唯一一个在这个项目上工作的人,那么要小心你所做的事情,因为它正在重写历史。

这里有一篇关于修正的伟大文章:

marques/git-basics-adding-more-changes-to-your-last-commit-1629344cb9a8

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43289444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档