比较github网站上有两个类似提交的分支,进行幻像删除

时间:2017-05-10 14:20:01

标签: github

我有两个分支机构已经很长时间没有合并,我试图看到差异。我得到一个幻影删除。

如果我开始拉取请求,github网站会将未更改显示为更改(例如,两个分支中相同的内容显示为更改为版本I&m;尝试合并)。基本上,如果我对两个分支进行了更改,则会将其显示为与此拉取请求相关的更改。

有很好的工具可以在命令行执行此操作,例如Showing which files have changed between two revisions

但是有没有办法在github网站上看到两个分支之间的变化?

这是一个小例子

https://github.com/pdbailey0/knitIgnore/pull/1/files

它显示为(幻像)删除,当你查看来源时显然不是什么

来自c1 https://github.com/pdbailey0/knitIgnore/blob/c1/DESCRIPTION

和c2 https://github.com/pdbailey0/knitIgnore/blob/c2/DESCRIPTION

2 个答案:

答案 0 :(得分:0)

这样的事情有帮助吗?

https://help.github.com/articles/comparing-commits-across-time/#comparing-branches

<强>更新

从github,转到分支,然后选择一个分支,例如c1。从那里点击比较,它位于绿色克隆按钮的正下方。 哪个应该带你到比较页面。从那里选择你想要比较的分支。

https://github.com/pdbailey0/knitIgnore/compare/c2...c1

<强>更新: 在与support@github.com的工作人员交谈后,发现github目前不支持我们试图通过分支机构实现的文件比较文件。遗憾。

答案 1 :(得分:0)

从支持@ github回复的人做了一个评论,引导我找到解决方案:

我有两个分支:beta(B)和release(R),我尝试将我在R中的任何错误修复合并到B中。要看到diff(但不删除我从B中删除的任何内容)在创建R时执行此操作:

  1. 复制B(Bcopy)。
  2. 将R合并到Bcopy中。完成此操作后,可能会出现合并冲突。始终使用R的首选项解决这些问题。这可以使用grep -lr '<<<<<<<' . | xargs git checkout --theirs自动完成,其中theirs是文字的,不需要替换。请参阅here
  3. 现在创建一个Bcopy的拉请求到B.这给了我想要的差异。
  4. 它非常狡猾,但它确实有用。

    编辑为automerge提供代码。

    编辑: 这就是我做的。在这里,您必须在您的测试版中替换B

    git checkout B 
    

    确保它干净,然后

    git checkout -b Bcopy
    

    在下一行,您必须用R

    替换您的版本
    git merge R 
    grep -lr '<<<<<<<' . | xargs git checkout --theirs
    git add --all
    git commit -m "merge"
    git push origin Bcopy
    

    现在你可以去网站和差异B和Bcopy看到一个诚实的差异!