【问题标题】:How to compare a forked branch with its original one?如何将分叉的分支与其原始分支进行比较?
【发布时间】:2020-05-26 14:34:31
【问题描述】:

但我也看到过类似的问题,git 还是不好掌握,所以这里是我的主要当前问题版本。

我有dev 分支。然后我用git checkout -b my_dev创建我自己的开发分支。

我在这个分支工作,而其他开发人员正在他们自己的分叉开发分支上工作。最终主 dev 分支被更新,我想让 my_dev 分支与 dev 保持同步。

最好的方法是什么?考虑两种情况:有冲突和没有冲突。

与我的相比,我可以看到 dev 上游发生的变化,这一点很重要。我的第一个想法是使用git diff dev my_dev(反之亦然),但令人惊讶的是,它只显示我已更改的文件。上游dev 没有显示任何内容。

我也确实是git fetch --all

到目前为止,我能得到的最好的结果是使用 github 并执行 pull request,它很好地显示了 dev 中而不是 my_dev 中的所有差异和文件。不过我应该只能用git cli吧?

【问题讨论】:

  • 除了您自己的本地存储库之外,您是在处理一个上游(GitHub?)存储库还是 两个 个上游存储库?
  • 如果你比较origin/dev而不是dev,你看到你期望的变化吗?
  • @torek:是的,到目前为止只有一个上游存储库
  • @LeGEC:git fetch --all 之后,这没有任何区别。

标签: git


【解决方案1】:

你需要玩...(3个点):

git diff origin/dev...my_dev # the stuff I have done
git diff my_dev...origin/dev # the stuff they have done

【讨论】:

  • 我见过类似... 的东西,我认为这只是剪断。然而,无论我使用它的顺序如何,我仍然看到我身边的变化。 Git 肯定不直观,为什么这些...
  • 如果你想看到他们的变化,那就是your-branch...base-branch。三点要求 git 找到最后一个共同祖先并从那里而不是第一个参数进行比较。
  • 现在我的同事在dev 做了一些事情,我可以测试你的建议。确实有效。但是现在,为了一个完整的答案,如何得到他的改变?如果发生冲突怎么办?
  • 我试过stackoverflow.com/a/42503177/2534342,但git diff origin/dev...my_dev 仍然显示出差异!
猜你喜欢
  • 2015-02-11
  • 2010-12-20
  • 2019-11-28
  • 2021-01-11
  • 2013-01-13
  • 1970-01-01
  • 2021-01-19
  • 2016-11-20
  • 2017-07-06
相关资源
最近更新 更多