场景解释:我已经完成了我的功能,并推到了一些git分支&将提交版本共享给我的项目经理。后来,我意识到我错过了一个功能,我想将它推送到同一个分支,而不记录任何提交。,新推送的提交应该附加到最后一次提交,我使用与项目管理器共享的相同提交版本
答案 0 :(得分:4)
提交哈希取决于几个因素:
有关详细信息,请参阅此问题:How does git compute file hashes?
因此,如果您引入新的提交,您将始终接收新的提示。
由于您已经推送了提交,因此请创建 new 提交,输入相应的提交消息并推送此提交。
是的,您必须告诉您的项目经理再次提取,但修改提交有什么问题?
如果你还没有推送你的提交,你想做
git commit --amend
但这也会导致不同的提交哈希值。
答案 1 :(得分:1)
就像埃克斯所说,这是不可能的。
根据您的需要,有几种解决方法。
1)如果它很快就没有其他人提交,你可以覆盖树whit git reset --hard并“避免分支通过该特定提交”。当你在代码上有一些不被其他人看到的东西时,这是很好的。
git reset --hard hashLastValidCommit
git add files
git commit -m"xxxx"
git push -f
注意:提交它仍然存在,但它不再存在于任何分支中,并且很难捕获到哈希值。
2)你也可以做一个rebase并将这些提交(新的和不完整的)融合为一个。这比上一步更有效。
3)如果你尚未推送提交,那完全是另一个主题。只需进行修改或重置,但哈希值无论如何都会改变。
这是一篇关于如何创建哈希的有趣文章,这将为您提供更好的视图并让您走上正确的轨道。
http://alblue.bandlem.com/2011/08/git-tip-of-week-objects.html
答案 2 :(得分:-1)
尝试
git commit --amend --no-edit.