在 sourcetree 中重命名提交消息/撤消提交并从图中删除
Rename commit mesage / Undo commit in sourcetree and remove from graph
我想知道如何撤消 git 提交或重命名 sourcetree 中的提交消息。
我使用错误的提交消息提交了我的更改。我想撤消该提交并从图中删除它。
我尝试了反向提交选项,但它在图中显示了另一个提交。
我现在正在想象您尝试使用 git revert
来撤消提交,但它最终会导致您进行额外的提交,这是适合您的解决方案。
使用 git log --oneline'
向您显示您的日志,您会找到带有错误消息的提交,除此之外您还会找到它的哈希值(如 53fnd3w
)复制它然后键入
git reset --hard <paste-the-hash>
这将引导您返回到该提交,之后如果您只想更改提交的名称,请使用
git commit --amend -m "New commit message"
这会让你更改最新提交的名称,也就是你所在的那个,但是如果你想撤消这些更改,因为你想将它们分成两个提交或其他东西,请使用
git reset HEAD^
这将 return 您返回当前提交的前一个提交,但未提交更改,一旦您进行新提交,它将忽略 HEAD^
之后的提交,您将当你做
时只看到新的提交
git log --oneline
希望对您有所帮助
基本上,您正在寻找的功能称为修改,它允许您对上次提交进行更改。这是 Sourcetree 提供的功能,但由于您已经创建了一个要删除的反向提交,因此您仍然必须使用命令行 "get your hands dirty"。
要删除最后一次反向提交,请执行以下操作:
git reset --hard HEAD~1
之后,您可以 return 舒适地使用 Sourcetree 并执行以下操作来更改原始提交的消息:
- 转到您的工作副本
- 在右下角选择
Commit options
-> Amend latest commit
- 编辑您的提交信息并点击
Commit
"rewrite history" 的一个非常有用的命令:rebase
您需要指定一个参考点(历史上最后一次 Ok 提交)
它是这样的:
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>
我想知道如何撤消 git 提交或重命名 sourcetree 中的提交消息。 我使用错误的提交消息提交了我的更改。我想撤消该提交并从图中删除它。 我尝试了反向提交选项,但它在图中显示了另一个提交。
我现在正在想象您尝试使用 git revert
来撤消提交,但它最终会导致您进行额外的提交,这是适合您的解决方案。
使用 git log --oneline'
向您显示您的日志,您会找到带有错误消息的提交,除此之外您还会找到它的哈希值(如 53fnd3w
)复制它然后键入
git reset --hard <paste-the-hash>
这将引导您返回到该提交,之后如果您只想更改提交的名称,请使用
git commit --amend -m "New commit message"
这会让你更改最新提交的名称,也就是你所在的那个,但是如果你想撤消这些更改,因为你想将它们分成两个提交或其他东西,请使用
git reset HEAD^
这将 return 您返回当前提交的前一个提交,但未提交更改,一旦您进行新提交,它将忽略 HEAD^
之后的提交,您将当你做
git log --oneline
希望对您有所帮助
基本上,您正在寻找的功能称为修改,它允许您对上次提交进行更改。这是 Sourcetree 提供的功能,但由于您已经创建了一个要删除的反向提交,因此您仍然必须使用命令行 "get your hands dirty"。
要删除最后一次反向提交,请执行以下操作:
git reset --hard HEAD~1
之后,您可以 return 舒适地使用 Sourcetree 并执行以下操作来更改原始提交的消息:
- 转到您的工作副本
- 在右下角选择
Commit options
->Amend latest commit
- 编辑您的提交信息并点击
Commit
"rewrite history" 的一个非常有用的命令:rebase
您需要指定一个参考点(历史上最后一次 Ok 提交) 它是这样的:
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>