在sourcetree中重命名提交消息/撤消提交,并从图

时间:2018-06-03 15:01:02

标签: git atlassian-sourcetree git-commit git-revert

我想知道如何在sourcetree中撤消git提交或重命名提交消息。 我用错误的提交消息提交了我的更改。我想撤消该提交,并从图中删除它。 我尝试了反向提交选项,但它在图中显示了另一个提交。

3 个答案:

答案 0 :(得分:2)

我现在已成像您尝试使用git revert来撤消提交,但最终会提供额外的提交,这是一个适合您的解决方案。 使用git log --oneline'向您显示您的日志,您将找到错误消息的提交,除此之外您将找到它的哈希值(如53fnd3w)复制它然后键入

git reset --hard <paste-the-hash>

这将导致您返回到该提交,之后如果您只想更改提交使用的名称

git commit --amend -m "New commit message"

这会让你改变你所站立的最新提交的名称,但如果你想要撤消这些更改,因为你想要将它们分成两次提交或者其他东西,请使用

git reset HEAD^

这会让你返回前一个提交未提交更改的提交,一旦你进行了新的提交,它将忽略HEAD^之后的提交,你将只看到新的提交时你做了

git log --oneline

希望这有帮助

答案 1 :(得分:1)

基本上,您正在寻找的功能称为修改,它允许您更改上次提交。这是Sourcetree提供的功能,但由于您已经创建了一个您想要摆脱的反向提交,因此您仍然需要使用命令行“弄脏”。

要摆脱最后一次反向提交,请执行以下操作:

git reset --hard HEAD~1

之后,您可以回到Sourcetree的舒适度并执行以下操作来更改您的orignial commit的消息:

  1. 转到您的工作副本
  2. 在右下方选择Commit options - &gt; Amend latest commit
  3. 修改您的提交消息,然后点击Commit

答案 2 :(得分:0)

“重写历史记录”非常有用的命令:rebase

您需要指定一个参考点(历史记录中的最后一次提交) 它是这样的:

git rebase -i <reference point sha/tag/branch>

这将引导您进入提交列表并允许您修改它们 有以下选择

#Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell

我认为'r'正是你所寻找的,但你可以看到它更强大。 git doc on rewriting history

在此之后,您需要强制推送以更新远程服务器

git push -f <remote> <branch>