barbarbar
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Author: asdfasdf <[email protected]>
# Date: Wed Nov 18 11:45:44 2015 -0600
#
# interactive rebase in progress; onto 1b90076
# Last commands done (2 commands done):
# pick af65427 actualizacion shells para produccion
# reword 1d4ba60 acualizacion shell extract_correct_invalid_account
# Next commands to do (2 remaining commands):
# pick 9679424 correccion test, dado que usuario es requerido
# pick 4ac4adc validacion cuando viene MXP en movimientos de cuenta
# You are currently editing a commit while rebasing branch 'develop' on '1b90076'.
#
# Changes to be committed:
# modified: xxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xx
#
# Untracked files:
# xxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxx/xxx.log
# xxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxx/foo.txt
您可以使用
git rebase
转到旧提交。例如,如果您有这些提交:并且您想修改
Commit 2
您将执行以下操作:在将出现(默认)的编辑器中 put
edit
,r
或者reword
而不是pick
在您要修改的提交的行中。像这样的东西:
进行更改(如果有),然后进行新的提交:
在那之后:
回到你
HEAD
以前的状态。警告:
在公共存储库中不建议这样做,因为如果有程序员根据后续提交进行更改,他们将有一种幽灵代码,这会引起很多混乱。但是在您的情况下,如果您只是要更改消息,那么问题不大。您可以在此处查看这些建议。
您要做的是使用相同的命令进行
rebase
交互式 ( ) 。-i
reword
首先运行
git rebase -i <hash-del-commit>~1
请求使rebase
当前分支与~1
您要修改的上一个提交 () 交互。$EDITOR
这将使用从该分支到分支顶部存在的所有提交的列表来触发您,指示pick
每个提交的 、 哈希和消息。就像是:更改
pick
为r
或reword
在要编辑的提交的行中。像这样的东西:保存文件并退出编辑器,它
git
会回到那个状态commit
并再次触发$EDITOR
,但这次是提交消息。就像是:编辑帖子以使其成为您想要的方式,保存文件,退出编辑器,并
git
应用所有缺少的提交,以便您的分支看起来相同,除了更新帖子。不要忘记您正在修改存储库的历史记录,因此如果您发布了您正在编辑消息或其任何后续消息的提交,您可能会与团队的其他成员产生冲突。
这意味着改写历史。您必须考虑到重写已经存在于
remote
.也就是说,您可以重写历史记录,从而使用
git-rebase
以下语法的命令更改提交的消息:然后 git 会打开一个编辑器,其内容类似于以下内容:
在此编辑器中,您将单词 pick 更改为单词 reword
稍后,Git 将打开一个编辑器,您可以在其中捕获提交的新消息。
关闭编辑器后,git 将重写 post-reword 提交并更新您当前的分支引用
干杯