如何在推送到服务器之前很久以前编辑提交日志

时间:2014-01-24 10:28:24

标签: git git-tower

有没有更简单的方法来编辑提交日志? (就像红箭指向的日志)

如果是,如何在命令行或gittower中执行此操作?

谢谢! enter image description here

2 个答案:

答案 0 :(得分:2)

只要您没有推送到服务器,就可以使用:

git rebase -i f88232a^

这将从f88232a开始以交互方式重新提交所有提交。 ^是告诉git在f88232a之前使用提交作为rebase操作的根。运行此命令时,您将看到如下内容:

pick f88232a Update
pick 57bfaca Change, redirect to index after finishing create
pick d23c917 Add missing column: result
...

将第一个pick更改为eedit。现在你会看到

Stopped at f88232a... Update
You can amend the commit now, with

    git commit --amend

Once you are satisfied with your changes, run

    git rebase --continue

现在运行

git commit --amend

更改您的提交消息&保存,然后运行

git rebase --continue

瞧!请注意,您将重新编写历史记录到f88232a。从f88232a到现在的每次提交都将被替换为带有新SHA的新提交。如果你有任何分支机构,这将很快变得丑陋,因为这些将基于旧的提交。但它应该做到这一点。

答案 1 :(得分:1)

不,没有一种简单的方法可以做到这一点(并不意味着没有办法,但它会在违规提交后改变每一次提交)。

Git最初旨在让历史变得非常难。下次执行更好的提交描述规则。 (您可以使用挂钩执行基本检查)。