【发布时间】:2021-05-02 04:59:47
【问题描述】:
我已经跟踪了情况。
简短:
我有master 分支和develop 分支。在 develop 上,我已经从功能分支中压缩了提交(当我通过 GitHub 将功能分支合并到 develop 时,我选择 Squash and Merge 选项。但是当我准备发布时,我会这样做:
git checkout develop
git checkout -b rc-2.0.0
git push origin rc-2.0.0
我创建了一个 PR 来掌握并合并它不压缩。
问题:
之后,我“顺便”将更多更改直接添加到rc-2.0.0,并将它们合并到master。现在,当我尝试将 master 合并到 develop 时,即使文件相同,我也会在 GitHub 中得到很多更改的文件。在master 和develop 之间的git diff 命令显示了一个已更改的文件。如何解决?我只想在合并请求主开发期间显示这一更改
【问题讨论】:
-
其中有些令人困惑。澄清一下:在您添加更多更改之前,您有 3 个分支:
rc-2.0.0与develop相同,并且(我假设)两者都领先于master,master没有任何新内容。然后您向rc-2.0.0添加了一个提交,但我不明白您的意思:将其推送到master。也许master没有被锁定以要求PR,而您不小心更新了master看起来与rc-2.0.0完全一样?是这样的吗?他们是在同一个提交上,还是在您已经将rc-2.0.0合并到master之后发生这种情况? -
另外,为了排除这种情况,请尝试执行
git fetch然后 difforigin/master和origin/develop以确保您执行的差异与 GitHub 相同。跨度> -
@TTT 我的 rc 等于开发。我将rc合并到master。然后,我在 rc 中添加了一些东西并再次合并到 master(但不是开发)作为修补程序。然后我再次做了一些修补程序并将它们合并到master。现在我想对齐develop和master,因为develop在master之后,而且develop合并了自己的更改。现在,当我从 develop 创建一个分支并将 master 合并到它时,即使在相同的文件中,我也有很多变化
-
好的。知道了。我对您的问题进行了一些措辞更改,以捕捉您在评论中所说的内容。所以我认为这可以简化为:
develop和master是相等的。master中现在有一些修补程序提交,develop中添加了其他提交。当我将master合并回develop时,我看到 GitHub 中更改的文件比实际更改的文件多。为什么? (这是否总结了问题?)现在,GitHub 是否显示文件已更改,但是当您单击它们时没有区别?如果是,是否有可能只更改空格或行尾? -
@TTT 可能是提交到开发被压缩但从开发到主控的提交不是?
标签: git github repository