压缩后编辑提交消息

时间:2017-01-26 17:19:14

标签: git rebase git-commit git-squash

我想实现featureX,我在用

编写之后就已经提交了它
git commit -m "featureX"

之后我做了一些改变并由

提交
git commit -m "yo1"

通过

压缩提交
git rebase -i HEAD~2

再次进行一些更改并由

提交
git commit -m "yo1"

通过

压缩提交
git rebase -i HEAD~3

现在git log显示 -

featureX
yo1
yo2

我想将提交消息yo1和yo2更改为change1和change2。

另外,我想知道如何看到我在yo1和yo2中所做的更改,因为我忘记了我在yo1和yo2中所做的更改。

4 个答案:

答案 0 :(得分:2)

Squashing commit意味着为您的提交生成新的哈希ID,并在一次提交中合并您的提交更改。提交树中有关提交消息yo1和yo2的提交的所有信息现在都丢失了(在featureX中合并)。

但是,如果您知道他们的提交哈希id,并且还认为git没有通过垃圾收集,您仍然可以看到它们。他们仍然会在你的树枝上脱离作为一个对象。

执行 git reflog 以查找与提交消息(yo1或yo2)关联的哈希ID。

然后您只需 git show hashid#即可查看您在那里所做的提交更改。

如果你只是想改变提交信息,那就更简单了,可以通过做任何事来完成

git commit --amend

git rebase -i HEAD~1 (-i代表交互模式)

答案 1 :(得分:0)

由于壁球将所有提交合并为一个,因此您无法知道原始更改。它进行了新的提交

您可以在上次提交时使用amendinteractive rebase更改提交说明并编辑选项

Git commit --amend

答案 2 :(得分:0)

您可以使用:

git commit --amend -m "New commit message"

修改最近的提交,因为压缩提交是一体化压缩提交。

答案 3 :(得分:0)

为了编辑HEAD(当前提交),您可以使用

git commit --amend
  

另外,我想知道如何看到我在yo1和yo2中所做的更改

为了查看最新提交的内容并更新它

git commit --amend --verbose

enter image description here 要查看给定提交的内容,您可以使用

git show <sha-1>

enter image description here