使用SourceTree来回退代码到某次提交
方法步骤
----
7 切换到sourceTree界面,鼠标选中将要回退到的那个历史提交记录

8 右键-》重置当前分支到此次提交

9 在弹窗中 使用模式选择 强行合并--丢弃所有改动过的工作副本,点击确定

10 等待重置完,可以看到本地仓库的develop分支已回退到 “提取 release分支的某次提交到 develop分支”提交。而且本地仓库落后远程仓库两个提交记录。

11 依然是同样的操作。选中最新的提交历史记录,右键-》重置当前分支到此次提交

12 这次选的使用模式是软合并 – 保持所有本地改动,点击确定

13 等待重置完。发现本地仓库开发分支已和远程仓库开发分支同步。这个结果似乎看起来两次重置抵消了一样,代码版本没有发生任何的变化。实际并不是这样,这就是神奇之处,会让你恍然大悟的地方。

14 切换到文件状态,可以看到本地工作副本多了一个test1.txt的改动文件,而且改动文件的内容正好删除了 新增test1和新增test2两次提交所修改的内容。

15 那么,剩下的操作只需将这个改动文件提交并推送到远程仓库,是不是就OK了?
下面尝试,提交并推送该改动文件。如下图,推送之后的效果。

16 如下图,可以看出本地工作副本和远程仓库的 add test1 和 add test2内容都被回退掉了。也就是代码版本从内容上回退到了某个历史版本,但是提交历史记录并没有回退。在提交记录已经同步到远程分支情况下,Git只会增加提交历史记录,是不会回退或删除提交记录的。我们所说的回退都是指的回退内容。

注意事项
----
回退指的是内容的回退,而不是提交记录的回退
#programming
方法步骤
----
7 切换到sourceTree界面,鼠标选中将要回退到的那个历史提交记录

8 右键-》重置当前分支到此次提交

9 在弹窗中 使用模式选择 强行合并--丢弃所有改动过的工作副本,点击确定

10 等待重置完,可以看到本地仓库的develop分支已回退到 “提取 release分支的某次提交到 develop分支”提交。而且本地仓库落后远程仓库两个提交记录。

11 依然是同样的操作。选中最新的提交历史记录,右键-》重置当前分支到此次提交

12 这次选的使用模式是软合并 – 保持所有本地改动,点击确定

13 等待重置完。发现本地仓库开发分支已和远程仓库开发分支同步。这个结果似乎看起来两次重置抵消了一样,代码版本没有发生任何的变化。实际并不是这样,这就是神奇之处,会让你恍然大悟的地方。

14 切换到文件状态,可以看到本地工作副本多了一个test1.txt的改动文件,而且改动文件的内容正好删除了 新增test1和新增test2两次提交所修改的内容。

15 那么,剩下的操作只需将这个改动文件提交并推送到远程仓库,是不是就OK了?
下面尝试,提交并推送该改动文件。如下图,推送之后的效果。

16 如下图,可以看出本地工作副本和远程仓库的 add test1 和 add test2内容都被回退掉了。也就是代码版本从内容上回退到了某个历史版本,但是提交历史记录并没有回退。在提交记录已经同步到远程分支情况下,Git只会增加提交历史记录,是不会回退或删除提交记录的。我们所说的回退都是指的回退内容。

注意事项
----
回退指的是内容的回退,而不是提交记录的回退
#programming