为什么git merge没有显示任何区别

时间:2019-07-31 16:44:30

标签: git github

我有一个名为dev的分支,在其中放置了一些用于ejb更改的代码并将其提交给github,但是该代码没有用,因此为了保留工作,我从dev创建了一个分支。名为ejb_change并推送到github。 我还原了dev分支中的代码,并在dev分支中提交了更多代码,现在我想将ejb_change分支合并到dev分支。 但是,当我执行git merge ejb_change /提出Pull Request时,git告诉您没有要合并的更改。我听不懂

如何将ejb_change的更改放在当前dev分支的顶部

3 个答案:

答案 0 :(得分:2)

如果您的已还原(例如,使用过git revert),则ejb_branch指向的是开发历史记录中的一部分……因此,如果您尝试合并ejb_change进入开发人员后,git会告诉您没有什么可以合并的。

如果是这种情况(我知道是这样,因为您已经说过了),那么您可以尝试挑选您还原的原始修订版(不确定是否可以使用,因为该修订版是否属于当前分支的历史记录)...或还原反向修订版本...虽然不美观,但应该可以使用。

答案 1 :(得分:0)

当你说

  

我还原了dev分支中的代码,并提交了更多代码

您的意思是您提交了一些代码来撤消更改?还是您将git历史恢复为以前的状态? 如果您只是提交了撤消更改的代码,则来自ejb_change的提交已经在dev中,并且没有合并。

答案 2 :(得分:0)

我也遇到了类似的问题,同样是由revert引起的。我解决问题的方法是在git reset --hard <commit hash>分支上创建一个dev,其中commit hash是在错误代码之前的提交。 A -> B -> C ,如果B是错误的代码,则C是它的还原,因此请使用A的哈希。 由于force push

更改了dev历史记录后,此解决方案确实需要reset
  

当心--hard,因为它将在选定的提交之后删除所有更改,因此只有在您确定不需要重置的提交时才这样做

之后,您的拉取请求应正常工作。

我想有更好的解决方案,但这就是我所知道的。