所以我一直在尝试恢复到我的项目的先前版本。但是当我进行 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 B
在 D
之上生成一个新的提交,以撤消 B
中引入的更改(请参阅下面的示例)。如果 中引入的更改与此新提交冲突,C
将发生冲突。
如果我恢复提交,我是去提交之前还是之后
也不。你最终会得到类似的东西
E [master]
|
D
|
C
|
B
|
A
其中E
的更改C
的更改相反。
如果你想"回到过去"B
你可以使用git checkout B
(这将导致头部分离,如果你想从那个点进行新的更改,这通常没有帮助),你可以使用git reset
master
移回B
,使C
和D
符合垃圾回收的条件, 或者,您可以使用git branch
在 B
处创建新分支。
根据您问题中的信息,我无法判断您想要其中的哪一个。