如何在没有记录日志的情况下进行git提交

时间:2014-02-07 10:29:49

标签: git github git-commit

场景解释:我已经完成了我的功能,并推到了一些git分支&将提交版本共享给我的项目经理。后来,我意识到我错过了一个功能,我想将它推送到同一个分支,而不记录任何提交。,新推送的提交应该附加到最后一次提交,我使用与项目管理器共享的相同提交版本

3 个答案:

答案 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.