为什么我在还原时会遇到 git 合并冲突



所以我一直在尝试恢复到我的项目的先前版本。但是当我进行 git 还原时,我不断遇到合并冲突。这到底为什么有意义?我说"我想恢复到以前的版本,就像当时一样",现在它说我需要保留一些当前的代码。不,我什么都不想要,我不知何故搞砸了我的项目,并认为这个早期版本没有搞砸。我知道我应该能够解决这些问题,但我以前从未做过大规模的合并冲突,而且我不理解很多 Xcode 代码。

另外,如果我还原提交,我是在提交之前还是之后?例如。。。

提交 A、提交 B、提交

C、提交 D。

我恢复提交 B。我该去哪里?在 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 BD 之上生成一个新的提交,以撤消 B 中引入的更改(请参阅下面的示例)。如果 中引入的更改与此新提交冲突,C将发生冲突。

如果我恢复提交,我是去提交之前还是之后

也不。你最终会得到类似的东西

E [master]
|
D
|
C
|
B
|
A

其中E的更改C 的更改相反。

如果你想"回到过去"B你可以使用git checkout B(这将导致头部分离,如果你想从那个点进行新的更改,这通常没有帮助),你可以使用git reset master移回B,使CD符合垃圾回收的条件, 或者,您可以使用git branchB 处创建新分支

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

最新更新