在SourceTree Windows中编辑提交消息(已推送到远程)
如何在不触及命令行的情况下在SourceTree中编辑不正确的提交消息?
额外细节:
结果:
以下是使用SourceTree for Windows版本1.5.2.0编辑之前提交( 不是最新提交 )的提交消息的步骤:
步骤1
在您要编辑的提交之前立即选择提交。 例如,如果我想编辑提交消息“FOOBAR!” 那么我需要选择它之前的提交:
第2步
右键单击选定的提交,然后单击“ Rebase children...interactively
:
第3步
选择要编辑的提交,然后单击底部的Edit Message
。 在这种情况下,我选择提交消息“FOOBAR!”:
步骤4
编辑提交消息,然后单击OK
。 在我的例子中,我添加了“SHAZBOT!SKADOOSH!”
第5步
当您返回到交互式底线窗口时,单击OK
以完成底线:
第6步
此时,您必须强制推送新的更改,因为您已重新提交了已提交的提交。 但是,目前的SourceTree for Windows 1.5.2.0版本不允许您通过GUI强行推送,因此无论如何您都需要从命令行使用Git才能完成此操作。
点击GUI中的Terminal
以打开终端。
第7步
从终端的力量推动下面的命令,
git push origin <branch> -f
其中<branch>
是您要推送的分支的名称, -f
意味着强制推送。 强制推送会覆盖您在远程仓库中的提交,但在您的情况下这没关系,因为您表示您并未与其他人分享您的仓库。
而已! 你完成了!
在版本1.9.6.1上。 对于UnPushed提交。
更新
注意:这个答案最初是针对Windows版本的SourceTree编写的,现在已经过时了。
查看我的最新版本的SourceTree for Windows 1.5.2.0的新答案。 为了历史的目的,我将这个答案留下。
原始答复
因为我在Windows上我没有一个命令行工具,也不知道如何使用一个:(是唯一的方法来解决这个问题?GUI不包括所有的git函数? - 原始海报
关于Git GUI, 不,它们不涵盖Git的所有功能 。 他们甚至不接近 。 我建议你检查一下如何在Git中编辑不正确的提交消息中的答案之一,Git是足够灵活的,以便有多种解决方案......从命令行。
SourceTree可能实际上已经与msysgit bash shell一起提供,或者它可能能够使用标准的Windows命令shell。 无论哪种方式,您通过单击终端按钮从SourceTree打开它:
您可以在此设置SourceTree使用的终端(bash或Windows):
一种解决SourceTree中问题的方法
话虽如此,这里有一种方法可以在SourceTree中实现。 既然你在评论中提到你不介意“恢复到错误的提交”(我假设你实际上是指重置,这在Git中是一个不同的操作),那么这里是步骤:
Reset current branch to this commit
,然后从下拉列表中选择硬重置选项,在SourceTree中执行硬重置。 关于这个评论:
如果因为它已经推到Bitbucket而无法实现,我不会介意创建一个新的存储库并重新开始。
这是否意味着你是唯一一个从事回购工作的人? 这很重要,因为通过修改repo的历史记录(例如通过修改提交)并不会对合作者造成问题,这不是微不足道的。 然而,假设你是唯一一个从事回购工作的人,那么你想要做的下一件事就是强迫你将已更改的历史推送到远程。
但请注意,因为您对有故障的提交进行了重置,所以强制推送会导致您失去之前发生的所有工作。 如果没关系,那么你可能需要在命令行使用以下命令来执行强制推送,因为我无法在SourceTree中找到选项:
git push remote-repo head -f
这也假设BitBucket将允许你强制推送回购。
不管怎样,你应该真的从命令行学习如何使用Git,它会让你更熟练地使用Git。 #ProTip,使用msysgit并在终端属性中启用快速编辑模式,以便您可以双击以突出显示一行文本,右键单击以复制,然后再次右键单击以进行粘贴。 这很快。
链接地址: http://www.djcxy.com/p/143.html上一篇: Edit a commit message in SourceTree Windows (already pushed to remote)