我有一个名为dev
的分支,在其中放置了一些用于ejb更改的代码并将其提交给github,但是该代码没有用,因此为了保留工作,我从dev
创建了一个分支。名为ejb_change
并推送到github。
我还原了dev
分支中的代码,并在dev
分支中提交了更多代码,现在我想将ejb_change
分支合并到dev
分支。
但是,当我执行git merge ejb_change
/提出Pull Request时,git告诉您没有要合并的更改。我听不懂
如何将ejb_change
的更改放在当前dev
分支的顶部
答案 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
,因为它将在选定的提交之后删除所有更改,因此只有在您确定不需要重置的提交时才这样做
之后,您的拉取请求应正常工作。
我想有更好的解决方案,但这就是我所知道的。