git - 在 SourceTree Windows 中编辑提交消息(已推送到远程)

标签 git atlassian-sourcetree

如何在不接触命令行的情况下在 SourceTree 中编辑不正确的提交消息?

其他详细信息:

  • 这不是最新的提交。
  • 所有内容都已推送到 Bitbucket。
  • 这是一个私有(private)仓库,我是唯一的合作者。
  • 我不介意丢失之前的任何提交,因为我可以随时重新提交它们。
  • 但是我不想丢失任何对代码的修改。

结果:

  • 根据您的评论和回复,目前似乎不可能,我将创建一个新的存储库并重新开始。感谢大家的帮助!

最佳答案

以下是编辑先前提交的提交消息的步骤(这是 不是最近的提交)使用 SourceTree for Windows version 1.5.2.0:

第一步

选择要编辑的提交紧接在之前的提交。 例如,如果我想编辑带有消息“FOOBAR!”的提交那我需要 选择它之前的提交:

Selecting commit before the one that I want to edit.

第二步

右键单击选定的提交并单击 Rebase children...interactively :

Selecting "Rebase children interactively".

第三步

选择要编辑的提交,然后单击 Edit Message在 底部。在这种情况下,我选择带有消息“FOOBAR!”的提交:

Select the commit that you want to edit.

第四步

编辑提交消息,然后单击 OK .在我的示例中,我添加了 “SHAZBOT!SKADOOSH!”

Edit the commit message

第 5 步

当您返回交互式 rebase 窗口时,单击 OK完成 rebase :

Click OK to finish.

第六步

此时,您需要强制推送您的新更改,因为您已经重新设置基准 提交您已经推送的内容。不过目前的1.5.2.0版本 Windows 的 SourceTree 不允许您通过 GUI 强制推送,所以 无论如何,您都需要从命令行使用 Git 才能做到这一点。

点击Terminal从 GUI 打开一个终端。

Click Terminal

第七步

使用以下命令从终端强制推送,

git push origin <branch> -f

哪里<branch>是您要推送的分支的名称,-f方法 强制 push 。强制推送将覆盖您对您的提交 远程 repo ,但在你的情况下没关系,因为你说你不共享 你与其他人的 repo 协议(protocol)。

就是这样!大功告成!

关于git - 在 SourceTree Windows 中编辑提交消息(已推送到远程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17604232/

相关文章:

atlassian-sourcetree - 如何在Mac上注册Source Tree?

bitbucket - 无法使用 Sourcetree 验证我的 Bitbucket 服务器帐户/如何使用 Bitbucket 服务器凭据在源树中注册

java - 单次登录 SSH,共享 session 来运行 git-receive-pack 并远程运行一些其他命令

git - Repo (+git) 的增值是什么?

git submodule update --init 给出 fatal error : Needed a single revision Unable to find current revision in submodule path

git没有在powershell中运行

git - 如果检测到更改中的特定短语,如何防止 git commit?

在 Ubuntu : "Unlink of file" 上使用 Samba 的 Git

git - 在 Windows 上使用 sourcetree 提交签名

github - Sourcetree 和 github