git命令将最近的更改添加到上次提交

时间:2016-02-11 00:40:36

标签: git

假设我在给定的git提交后做了一些更改。有没有办法将这些更改放在同一个先前的提交中?现在我做的是做另一个提交,然后做一个git rebase -i HEAD~2将两个提交合并为一个,但我更喜欢更快的方式。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您的工作目录或阶段中只有更改,那么您可以使用Git所谓的 修改 git-commit可以选择

像这样使用--amend

git commit --amend -a

您可以重复使用以前的提交消息:

git commit --amend -a --reuse-message=HEAD

如果你有多次提交,你想快速压缩到另一次提交,那么git-reset可能是一个有用的工具。

假设您有一个这样的树(并且HEAD指向C):

A <- B <- C

如果您想快速将BC合并到A中以创建包含所有这三个提交内容的提交,您可以像{1}}一样使用rebase在你的问题中。

或者,您可以像这样使用reset

git reset --soft A
git commit --reuse-message=HEAD

使用--soft选项,以便将“重置”的提交内容放入您的阶段,并准备好提交。 当然,如果需要,您可以提供唯一的提交消息。

请注意,这两个选项都有效地重写了您的提交(就像rebase一样),因此会有一个新的SHA。旧的提交仍然可用,如果需要,可以使用reflog检索。

Here是关于修改和重写历史记录的更多详细信息的良好链接。 Here是关于挤压的好文章。