我将一些更改推送到我们的中央git存储库,然后立即意识到我有一个旧的,现在过时的变化,并且我已经引入了它的合并:
然后我使用git rebase来摆脱这个虚假的父母:
然后我用git push -f
推送到原点。它回答“一切都是最新的”。
现在我希望中央存储库能够匹配本地存储库。然而,当我重新clone
项目时,我仍然有一个虚假的父母。更糟糕的是,git想要合并,如果我让它这样做,我会得到我的最新提交两次(一次使用旧的哈希,一次使用新的一次)。
如何让git在没有合并的情况下推送我的内容,并将我的存储库状态作为新状态(基本上,拒绝所有远程差异)?
或者我做错了吗?我想摆脱“当阅读一个属性......”提交时,以及上图中的整个红线。答案 0 :(得分:1)
您可以通过各种方式解决此问题。一种方法是使用reset,stash和commit在本地重建历史记录。以下内容将撤消您的上次提交(初始导入...)并将这些更改隐藏起来。
git reset --mixed HEAD^
git stash
现在你可以将你的master重置为你进行合并之前的提交,假设abcd1234是“Testing git”的哈希值。提交:
git reset --hard abcd1234
现在带回藏匿并再次提交:
git stash pop
git add .
git commit -m 'Initial import of the C++ client library.'
现在终于推翻你重写的主人:
git push -f origin master