所以我一直试图恢复到我项目的先前版本。但是当我做一个git revert时,我一直遇到合并冲突。为什么这有意义呢?我正在说"我想恢复到这个先前的版本,就像当时的那样#34;现在它说我需要保留一些当前的代码。不,我不想要它,我以某种方式搞砸了我的项目,并认为这个早期的版本并没有搞砸。我知道我应该能够解决这些问题,但我之前从未做过大规模的合并冲突,而且我也不了解很多这些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'
答案 0 :(得分:4)
我说&#34;我想恢复到之前的版本,就像当时&#34;
实际上,you're not:
给定一个或多个现有提交,还原相关修补程序引入的更改,并记录一些记录它们的新提交。
鉴于这个简单的历史
D [master]
|
C
|
B
|
A
git revert B
在D
之上生成一个新提交,用于撤消B
中引入的更改(请参阅下面的示例)。如果C
中引入的更改与此新提交冲突,则会发生冲突。
如果我还原提交,我是在提交之前还是之后
都不是。你最终会得到像
这样的东西E [master]
|
D
|
C
|
B
|
A
其中E
更改了C
的更改。
如果你想&#34;回到过去&#34;到B
你可以使用git checkout B
(这将产生detached head,如果你想从那一点做出新的更改通常没有帮助,你可以使用{ {1}}将git reset
移回master
,使B
和C
有资格进行垃圾回收,或者您可以使用D
创建 {/ 1>}的新分支。
根据您问题中的信息,我无法说明您想要的哪些信息。