【问题标题】:After branching from FB, get GitHub PR to only show differences between FB and master从FB分支后,获取GitHub PR只显示FB和master的区别
【发布时间】:2023-03-22 22:57:02
【问题描述】:

我们有以下情况:

master ------A          X------------Y
              \        / \          /
               \      /   \        /
                \    /     \      /
                 --B-       \    / 
                    \        \  /
                     C---------D

Jane 在 A 创建了一个 FB,然后在 X 合并回来。

Bob 在 B 创建了 FB C,做了一些工作,再次从 master 中拉出,并在 D 创建了一个 PR 以在 Y 合并回来。

在 GitHub 中,Jane 的 PR 仅正确显示了 A 和 X 之间的变化,并被合并回 master。

在 GitHub 中,Bob 的 PR 显示了 A 和 Y 之间的所有变化,这不是我们预期的。我们认为因为 Bob 从 X 合并到他在 D 的 FB,他的 PR 将只包括他的分支和 X 之间的变化,即他的分支之间的 当前 差异和主人。

我们是否遗漏了一些明显的东西?

【问题讨论】:

  • 您能否澄清一下再次从大师那里拉出来是什么意思?就像他通过从 origin/master 中提取更改来更新 FB C 一样?
  • 是的@AElMehdi,这就是我的意思 - 他通过在 D 点合并 X 来更新 FB C。我已将帖子更新为更清晰,谢谢!

标签: git github pull-request git-flow feature-branch


【解决方案1】:

尝试以交互方式将 feature branch corigin/masterforce push 上重新设置为 feature branch c

  1. 更新您的本地存储库:

    git fetch
    
  2. 切换到您的功能分支 C:

    git checkout feature-branch-c
    
  3. 在 origin/master 上运行交互式 rebase:

    git rebase -i origin/master
    

系统会提示您更改历史记录,请小心;):

pick 2feec74 message1
pick 2xxxx m2
pick 2xxxx m3
pick xxxx m4

这将包含您在 github PR 中看到的相同提交。现在,您可以简单地删除不需要的提交,方法是在它们前面加上 d,如下所示:

pick 2feec74 message1
d 2xxxx m2  (The commit you want to drop)
d 2xxxx m3  (The commit you want to drop)
pick xxxx m4

保存您的文件,现在您可以再次推送,但您需要使用标志-f,因为您已经更改了历史记录。

git push -f

【讨论】:

  • 感谢您的回复@AEIMehdi,我希望 rebase 不会成为答案。 :-/ 我确信在以前的 GitHub 设置中,在这种情况下,PR 似乎自动检测到现在只有从 X 到 Y 的差异是相关的。有没有其他方法,没有变基?
  • 不客气!肯定会有另一种方法来解决它。它是公共存储库吗?
  • 不,它不公开。在与我们公司的其他 git 用户交谈后,他们也看到了 PR 中只有 X->Y 差异的情况。
  • 检查重复提交的哈希,我猜它们会有所不同!
猜你喜欢
  • 2017-01-30
  • 1970-01-01
  • 2023-01-04
  • 2018-07-27
  • 2011-10-03
  • 2022-11-11
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多