我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
当前回答
如果你只想更改你的最后一个消息,你应该使用 - 单旗或它的缩短 - 或与承诺 - 更改:
git commit --amend -o -m "New commit message"
这确保你不会偶然提高你的承诺与步行物品. 当然,最好有一个合适的 $EDITOR 配置. 然后你可以放弃 -m 选项, Git 将提前填写承诺消息与旧的。
其他回答
如果你只是想编辑最新的承诺,使用:
git commit --amend
或
git commit --amend -m 'one line message'
但是,如果你想连续编辑多个命令,你应该使用重定向,而不是:
git rebase -i <hash of one commit before the wrong commit>
此分類上一篇
在文件中,如上面的文件中,输入编辑或其他选项之一,然后点击保存和输出。
现在你将处于第一个错误的承诺,在文件中进行更改,它们将自动为你排列。
git commit --amend
保存和输出这个和类型
git rebase --continue
移动到下一个选择,直到完成所有的选择。
请注意,这些事情在这个特殊的承诺之后改变了您的所有SHA<unk>。
我喜欢使用以下内容:
git status git add --all git commit -am “消息走到这里关于变化” git pull <origin master> git push <origin master>
如果您需要在多个分支上更改一个旧的承诺消息(即与错误消息的承诺存在于多个分支),您可能需要使用:
git filter-branch -f --msg-filter \
'sed "s/<old message>/<new message>/g"' -- --all
Git 将创建一个临时目录,以重新编写,并在 refs/original/中备份旧参考。
-f 将执行操作,这是必要的,如果临时目录已经存在,或者如果已经有参考存储在 refs/original 下,如果不是这样,你可以放下这个旗帜. -- 将过滤分支选项与审查选项分开。
由于您的旧参考备份,您可以在执行命令之前轻松地返回状态。
说,你想恢复你的主人,并在分支 old_master 中访问它:
git checkout -b old_master refs/original/refs/heads/master
git rebase -i HEAD~5
这个命令会带你到Vim,你可以“编辑”你的承诺历史,你会看到你的最后五个承诺在顶部如下:
pick <commit hash> commit message
然后Vim将通过你想要重新编写的每一个承诺消息,在这里你实际上可以改变承诺消息,你将通过进入插入模式,改变承诺消息,进入命令模式,并保存和停止。
然后,如果你已经推了你的错误的命令,你需要 git push - 强迫过写它们. 记住, git push - 强迫是相当危险的事情,所以确保没有人从服务器,因为你推了你的错误的命令!
如果您正在使用 Git GUI,您可以更改未被推的最后一个承诺:
Commit/Amend Last Commit