乐闻世界logo
搜索文章和话题

Git 合并冲突过程中如何中止合并进度?

3个答案

1
2
3

当在 Git 中遇到合并冲突时,如果您决定不继续完成合并过程,并希望中止合并,您可以使用以下命令来重置合并状态:

bash
git merge --abort

或者,在某些旧版本的 Git 中,您可能需要使用:

bash
git reset --merge

使用 git merge --abort 命令将会恢复到合并操作之前的状态,并尝试重建合并操作开始前的文件和索引的状态。

如果合并之前您的工作目录是干净的(没有未提交的改动),那么 git merge --abort 就会让您的工作目录回到合并操作之前完全一样的状态。如果合并操作之前有未提交的改动,那些改动依然会保留在工作目录中,但可能需要手动解决任何因合并操作引入的冲突。

例如,假设我在 feature 分支上开发了一项新功能,现在我想将这些改动合并到 master 分支。当我运行 git merge feature 时,我遇到了冲突。我意识到现在不是解决这些冲突的好时机,或者我决定采取不同的策略来整合这些变更,因此我决定中止合并。我就会运行 git merge --abort,这样我就可以回到合并之前的状态,重新考虑我的合并策略。

2024年6月29日 12:07 回复

我想这是git reset你需要的。

请注意,这git revert意味着非常不同的东西,例如,svn revert在 Subversion 中,恢复将丢弃您的(未提交的)更改,将文件从存储库返回到当前版本,而git revert“撤消”提交。

git reset应该做相当于 的事情svn revert,即放弃不需要的更改。

2024年6月29日 12:07 回复

如果您的 git 版本 >= 1.6.1,则可以使用git reset --merge.

另外,正如 @Michael Johnson 提到的,如果你的 git 版本 >= 1.7.4,你也可以使用git merge --abort.

与往常一样,请确保在开始合并之前没有未提交的更改。

来自git merge 手册页

git merge --abort相当于git reset --merge何时MERGE_HEAD存在。

MERGE_HEAD当合并正在进行时出现。

另外,关于开始合并时未提交的更改:

如果您不想在开始合并之前提交更改,只需git stash在合并之前以及git stash pop完成合并或中止合并之后提交即可。

2024年6月29日 12:07 回复

你的答案