我想实现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中所做的更改。
答案 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)
由于壁球将所有提交合并为一个,因此您无法知道原始更改。它进行了新的提交
您可以在上次提交时使用amend
或interactive rebase
更改提交说明并编辑选项
Git commit --amend
答案 2 :(得分:0)
您可以使用:
git commit --amend -m "New commit message"
修改最近的提交,因为压缩提交是一体化压缩提交。
答案 3 :(得分:0)