为什么在执行还原时会遇到git合并冲突?

为什么在执行还原时会遇到git合并冲突?,git,github,Git,Github,因此,我一直在尝试恢复到我的项目的早期版本。但是当我做git恢复时,我总是会遇到合并冲突。这到底是为什么?我的意思是我想恢复到以前的版本,就像它当时的样子,现在我需要保留一些当前的代码。不,我一点都不想要,我不知怎么搞砸了我的项目,认为这个早期版本没有搞砸。我知道我应该能够解决这些问题,但是我以前从来没有做过大规模的合并冲突,而且我不太理解这个Xcode代码 此外,如果我恢复提交,我是在提交之前还是之后执行?例如 提交A、提交B、提交C、提交D 我去哪里?A之后,还是B之后 $ git reve

因此,我一直在尝试恢复到我的项目的早期版本。但是当我做git恢复时,我总是会遇到合并冲突。这到底是为什么?我的意思是我想恢复到以前的版本,就像它当时的样子,现在我需要保留一些当前的代码。不,我一点都不想要,我不知怎么搞砸了我的项目,认为这个早期版本没有搞砸。我知道我应该能够解决这些问题,但是我以前从来没有做过大规模的合并冲突,而且我不太理解这个Xcode代码

此外,如果我恢复提交,我是在提交之前还是之后执行?例如

提交A、提交B、提交C、提交D

我去哪里?A之后,还是B之后

$ git revert 8873550de2b6c4bec42cfec4e98600736f01ffb9
error: could not revert 8873550... Grid view
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
我是说我想恢复到以前的版本,就像当时一样

事实上:

给定一个或多个现有提交,还原相关修补程序引入的更改,并记录一些记录这些更改的新提交

鉴于这段简单的历史

D [master]
|
C
|
B
|
A
git revert B在D的基础上生成一个新的提交,该提交将撤销B中引入的更改,请参见下面的示例。如果C中引入的更改与这个新的提交冲突,您将得到冲突

如果恢复提交,是在提交之前还是之后执行

都不是。你最终会得到这样的结果

E [master]
|
D
|
C
|
B
|
A
其中E的变化与C的变化相反

如果您想回到B,可以使用git签出B,这将导致a,如果您想从该点进行新的更改,这通常没有帮助,您可以使用git reset将master移回B,使C和D符合垃圾收集的条件,或者您可以使用git branch在B创建新的分支

根据你问题中的信息,我不知道你想要哪一个

我是说我想恢复到以前的版本,就像当时一样

事实上:

给定一个或多个现有提交,还原相关修补程序引入的更改,并记录一些记录这些更改的新提交

鉴于这段简单的历史

D [master]
|
C
|
B
|
A
git revert B在D的基础上生成一个新的提交,该提交将撤销B中引入的更改,请参见下面的示例。如果C中引入的更改与这个新的提交冲突,您将得到冲突

如果恢复提交,是在提交之前还是之后执行

都不是。你最终会得到这样的结果

E [master]
|
D
|
C
|
B
|
A
其中E的变化与C的变化相反

如果您想回到B,可以使用git签出B,这将导致a,如果您想从该点进行新的更改,这通常没有帮助,您可以使用git reset将master移回B,使C和D符合垃圾收集的条件,或者您可以使用git branch在B创建新的分支

根据您问题中的信息,我无法判断您想要哪一个。

git revert!=git结帐。看见或参见下文。git revert可能重复!=git结帐。看见或见下文。可能的副本