GitHub 还原还是重置?
GitHub revert or reset?
正如你在图片中看到的那样,我正在处理功能 forum_kolo_3,我决定完成该功能并将其合并到开发中(但没有将更改推送到远程开发,所以它只是本地的更改)然后我意识到这是个坏主意,现在我想删除此合并,就像它从未发生过一样。
与此处描述的情况类似:git revert not allowed due to a merge but no -m option was given
但我不太确定现在该做什么,反转还是重置?
我想撤消刚刚所做的合并。
我也找到了这个How to revert Git repository to a previous commit?
git revert --no-commit 0766c053..HEAD
git commit
这似乎是个更好的主意...但我不知道
只需在合并前找到 develop 分支的最后一次提交,然后将您的 git 历史记录重置为该提交。
git reset --hard <pre_merge_last_commit_id>
您可以使用 gitk
或 git log --oneline --decorate=full --graph
等图形工具来查找开发分支的最后一次提交。
注意:请确保您没有重置为功能分支的最后一次提交。
git revert
在您要撤消的更改已经发布时很有用。它基本上恢复了另一个提交操作的更改(删除添加的行,添加删除的行,在另一个方向更改更改的行)。
它与 "Undo" 操作类似,但它通常发生在其他提交已添加到分支并创建新提交之后。
now I want to remove this merge, like it never happened.
由于您没有发布更改,最好的解决方案是使用 git reset --hard
。
如果您在 develop
分支上并且您的最后一个命令是 git merge feature/forum_kolo_3
,运行 git reset --hard HEAD^1
。它将当前分支 (develop
) 移动到合并提交的第一个父级(即合并之前的位置)。
正如你在图片中看到的那样,我正在处理功能 forum_kolo_3,我决定完成该功能并将其合并到开发中(但没有将更改推送到远程开发,所以它只是本地的更改)然后我意识到这是个坏主意,现在我想删除此合并,就像它从未发生过一样。
与此处描述的情况类似:git revert not allowed due to a merge but no -m option was given
但我不太确定现在该做什么,反转还是重置? 我想撤消刚刚所做的合并。
我也找到了这个How to revert Git repository to a previous commit?
git revert --no-commit 0766c053..HEAD
git commit
这似乎是个更好的主意...但我不知道
只需在合并前找到 develop 分支的最后一次提交,然后将您的 git 历史记录重置为该提交。
git reset --hard <pre_merge_last_commit_id>
您可以使用 gitk
或 git log --oneline --decorate=full --graph
等图形工具来查找开发分支的最后一次提交。
注意:请确保您没有重置为功能分支的最后一次提交。
git revert
在您要撤消的更改已经发布时很有用。它基本上恢复了另一个提交操作的更改(删除添加的行,添加删除的行,在另一个方向更改更改的行)。
它与 "Undo" 操作类似,但它通常发生在其他提交已添加到分支并创建新提交之后。
now I want to remove this merge, like it never happened.
由于您没有发布更改,最好的解决方案是使用 git reset --hard
。
如果您在 develop
分支上并且您的最后一个命令是 git merge feature/forum_kolo_3
,运行 git reset --hard HEAD^1
。它将当前分支 (develop
) 移动到合并提交的第一个父级(即合并之前的位置)。