【问题标题】:Merging master to squashed develop合并master到squashed开发
【发布时间】: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 中得到很多更改的文件。在masterdevelop 之间的git diff 命令显示了一个已更改的文件。如何解决?我只想在合并请求主开发期间显示这一更改

【问题讨论】:

  • 其中有些令人困惑。澄清一下:在您添加更多更改之前,您有 3 个分支:rc-2.0.0develop 相同,并且(我假设)两者都领先于 mastermaster 没有任何新内容。然后您向rc-2.0.0 添加了一个提交,但我不明白您的意思:将其推送到master。也许master 没有被锁定以要求PR,而您不小心更新了master 看起来与rc-2.0.0 完全一样?是这样的吗?他们是在同一个提交上,还是在您已经将 rc-2.0.0 合并到 master 之后发生这种情况?
  • 另外,为了排除这种情况,请尝试执行 git fetch 然后 diff origin/masterorigin/develop 以确保您执行的差异与 GitHub 相同。跨度>
  • @TTT 我的 rc 等于开发。我将rc合并到master。然后,我在 rc 中添加了一些东西并再次合并到 master(但不是开发)作为修补程序。然后我再次做了一些修补程序并将它们合并到master。现在我想对齐develop和master,因为develop在master之后,而且develop合并了自己的更改。现在,当我从 develop 创建一个分支并将 master 合并到它时,即使在相同的文件中,我也有很多变化
  • 好的。知道了。我对您的问题进行了一些措辞更改,以捕捉您在评论中所说的内容。所以我认为这可以简化为:developmaster 是相等的。 master 中现在有一些修补程序提交,develop 中添加了其他提交。当我将 master 合并回 develop 时,我看到 GitHub 中更改的文件比实际更改的文件多。为什么? (这是否总结了问题?)现在,GitHub 是否显示文件已更改,但是当您单击它们时没有区别?如果是,是否有可能只更改空格或行尾?
  • @TTT 可能是提交到开发被压缩但从开发到主控的提交不是?

标签: git github repository


【解决方案1】:

我认为最好的解决方案是执行git rebase -i <sha before the branches diverged> 这将允许您删除合并提交,并且日志将是您想要的一行。您还可以删除您不再需要的任何提交。

【讨论】:

  • 不是这种情况
猜你喜欢
  • 2015-01-31
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 2021-12-29
相关资源
最近更新 更多