我有两个分支,master
和test
。当我尝试将master合并到测试中时,git认为一切都是最新的,但是如果我运行git diff master test
,我会得到一个我不能期望的差异。在这个特定的时刻,我希望它们完全相同。
我试图弄清楚如何让它们再次相同。虽然我有一个是删除测试分支,只需从master重新创建它。但是,test是一个共享分支,也存在于测试服务器上,它根据提交挂钩自动拉取测试分支。我希望重新创建测试分支会破坏测试服务器的拉动尝试吗?
是否有更简洁的方法来重新同步这两个分支,或者我应该只是咬紧牙关并手动重新同步测试服务器?
我也期待在某个时刻有必要对生产部门做同样的事情,这使我更加重要的是我在去做之前理解了我做的事情。它
请注意,如果我要求git在一个分支中的任何合并而不是在另一个分支中,它会返回任何内容 - 所有合并都存在。它可能是一个糟糕的合并提交或让我们达到这一点的东西。
答案 0 :(得分:0)
基于测试的分支主人吗?
我能想到的原因是在你当前的情况下你的主分支落后于测试分支,这意味着测试分支已经拥有了主提交并且它已经拥有。
如果你正在使用github或gitlab,你可以检查一下你的网络图,看看它们是什么。
此外,请确保您在某些时候没有更改您的gitignore。
如果高手在测试之后,我能想到你同步它们的唯一合理方法是将测试合并到主人,但那就是你想把它带到生产的时候。
答案 1 :(得分:0)
不是一个完整的答案,因为它不是完整答案的足够信息,只有一些建议:
git log test --not master
。因此,您将获得test
但不在master
中的提交列表。... master --not test
)。可能你会在这里得到一个空列表git push -f
。但在强行覆盖远程遥控器的状态之前请三思而后行。gitk --all
或远程服务(每个流行的托管,如github或gitlab都有自己的webtools)。git blame <file>
(或甚至git gui blame <file>
)来了解特定行的提交来自何处。或者,您可以git log -p
获取提交列表及其更改。