我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
当前回答
要改變以前的承諾,做你想要的變化,並進行這些變化,然後執行
git commit --amend
这将打开一个文件在你的文本编辑器代表你的新的承诺消息. 它开始与文本从你的旧承诺消息。 改变承诺消息,如你想要,然后保存文件,然后停止你的编辑器完成。
要更改以前的承诺,并保持相同的日志消息,运行
git commit --amend -C HEAD
修复以前的承诺,通过完全删除它,运行
git reset --hard HEAD^
如果你想编辑多个承诺消息,运行
git rebase -i HEAD~commit_count
此命令启动您的编辑器. 标记第一个命令(您想要更改的命令)为“编辑”而不是“选择”,然后保存和输出您的编辑器。
git commit --amend
git rebase --continue
注意: 您也可以从 git commit 打开的编辑器“做您想要的更改” - 更改
其他回答
您可以使用 git-rebase-reword
它旨在以同样的方式编辑任何承诺(不只是最后) - 修改
$ git rebase-reword <commit-or-refname>
它被命名为反对互动的行动,以改变一个承诺:“反对”。 查看此帖子和人 - 部分互动模式-
例子:
$ git rebase-reword b68f560
$ git rebase-reword HEAD^
更改最新承诺消息
git commit --amend
git commit --amend -m "New commit message"
...任何人,这可能会使多线承诺消息或小纠正更有吸引力进入。
确保您在做此之前没有任何工作复制变更,或者它们也会被承诺(未进行的变更不会被承诺)。
git push <remote> <branch> --force
# Or
git push <remote> <branch> -f
// n is the number of commits up to the last commit you want to be able to edit
git rebase -i HEAD~n
一旦你错过了你的承诺,选择e/r来编辑消息:
如果你使用 git rebase -i HEAD~n 可以有更多的 n 命令. Git 将“收集”最后 n 命令中的所有命令,如果在这个范围之间有某个合并,你会看到所有的命令,所以结果将是 n + 。
好提示:
git-commit(1) 手动 页 git-rebase(1) 手动 页 git-push(1) 手动 页
如果你想修正的承诺不是最新的承诺:
git rebase --interactive $parent_of_flawed_commit 如果你想修复几个错误的命令,通过最古老的命令的父母。 一个编辑会出现,从你给的所有命令的列表。 更改选择重新命令(或在旧版本的Git,编辑)在任何命令你想修复的前面。 一旦你保存,Git将重新播放列出的命令。
它是非常容易的;你不需要记住它 - 只是记住, git rebase - 互动允许你纠正命令,无论他们是多久以前。
请注意,你不会想改变你已经推的承诺,或者也许你会这样做,但在这种情况下,你将不得不非常小心地与任何可能推你的承诺并完成工作。
修正
这里有几种选择,你可以
git commit --amend
只要是你最后的承诺。
互动降落
否则,如果不是你的最后承诺,你可以做一个互动的折扣,
git rebase -i [branched_from] [hash before commit]
接下来,在互动的复制中,你只会添加编辑到这个承诺。当它出现时,做一个 git commit - 更改并修改承诺消息. 如果你想在这个承诺点之前旋转,你也可以使用 git reflog 并只会删除这个承诺。
您可以使用 Git 重定向. 例如,如果您想要修改回来承诺 bbc643cd,运行
$ git rebase bbc643cd^ --interactive
在默认编辑器中,修改“选择”到“编辑”的行,您想要修改的承诺。
$ git add <filepattern>
现在你可以使用
$ git commit --amend
要改變承諾,然後
$ git rebase --continue
要回到前任首席执行官。