我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
当前回答
我意识到我已经推着一个承诺与一个类型在其中。为了放弃,我做了以下事情:
git commit --amend -m "T-1000, advanced prototype"
git push --force
警告:强迫推你的变化将重新写下远方分支与你的当地一个. 确保你不会过度写下任何你想保持的东西. 也要小心强迫推一个修改(重新写)承诺,如果其他人与你分享分支,因为他们将需要重新写下自己的历史,如果他们有旧的副本的承诺,你刚刚重新写。
其他回答
如果您没有将代码推到您的远程分支(GitHub/Bitbucket),您可以按照下面的命令线更改承诺消息。
git commit --amend -m "Your new message"
如果你在一个特定的分支工作,这样做:
git commit --amend -m "BRANCH-NAME: new message"
如果你已经用错误的消息推了代码,你需要在更改消息时小心,也就是说,一旦你改变承诺消息并尝试再次推它,你会遇到问题。
请在做之前阅读我的全部答案。
git commit --amend -m "BRANCH-NAME : your new message"
git push -f origin BRANCH-NAME # Not a best practice. Read below why?
重要注意:当您直接使用强力压力时,您可能会遇到其他开发人员在同一分支上工作的代码问题,因此要避免这些冲突,您需要在强力压力之前从分支中提取代码:
git commit --amend -m "BRANCH-NAME : your new message"
git pull origin BRANCH-NAME
git push -f origin BRANCH-NAME
這是改變承諾訊息的最佳做法,如果它已經被推動。
如果您需要在多个分支上更改一个旧的承诺消息(即与错误消息的承诺存在于多个分支),您可能需要使用:
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 commit --amend -m "T-1000, advanced prototype"
git push --force
警告:强迫推你的变化将重新写下远方分支与你的当地一个. 确保你不会过度写下任何你想保持的东西. 也要小心强迫推一个修改(重新写)承诺,如果其他人与你分享分支,因为他们将需要重新写下自己的历史,如果他们有旧的副本的承诺,你刚刚重新写。
您可以使用 Git 重定向. 例如,如果您想要修改回来承诺 bbc643cd,运行
$ git rebase bbc643cd^ --interactive
在默认编辑器中,修改“选择”到“编辑”的行,您想要修改的承诺。
$ git add <filepattern>
现在你可以使用
$ git commit --amend
要改變承諾,然後
$ git rebase --continue
要回到前任首席执行官。
正如前面提到的那样, git commit --amend 是重写最后一份重写的方式。
git commit -a --amend -m "My new commit message"