zoukankan      html  css  js  c++  java
  • SourceTree使用教程(六)--回滚版本到某次提交

    在SourceTree使用教程(五)中讲到了提交的撤销回滚,并且注明这个撤销回滚只能撤销回滚最新的提交记录,并不能回滚到某个历史版本。但是实际使用场景中肯定会遇到需要回退到某个提交的,而不仅仅是最新的提交。本次教程将讲述如何使用SourceTree来回退代码到某次提交。

    方法/步骤

     
    1. 1

      打开sourceTree,切换到开发分支

      SourceTree使用教程(六)--回滚版本到某次提交
    2. 2

      打开本地工作副本test1.txt文件,编辑新增 add test1 

      SourceTree使用教程(六)--回滚版本到某次提交
    3. 3

      提交并推送本次新增到远程仓库

      SourceTree使用教程(六)--回滚版本到某次提交
    4. 4

      打开本地工作副本test1.txt文件,编辑新增 add test2

      SourceTree使用教程(六)--回滚版本到某次提交
    5. 5

       提交并推送本次修改到远程仓库,可以看到最新的历史记录在本地仓库和远程仓库都已有了新增test1和新增test2

      SourceTree使用教程(六)--回滚版本到某次提交
    6. 6

      如果这个时候突然发现前面的两次提交是错误的,现在想回到“提取release分支的某次提交到develop分支”这个版本。有两种解决方式,第一种是删除掉新增test1和新增test2两次提交所加的内容,但是这有个前提,是修改内容很少的情况下才可以采用此方法,否则会陷入无穷无尽的代码比对泥沼。那么第二种方式就是该教程将要讲述的。回退到某个历史版本。

      SourceTree使用教程(六)--回滚版本到某次提交
    7.  

      切换到sourceTree界面,打开develop分支的日志/历史,鼠标选中将要回退到的那个历史提交记录

      SourceTree使用教程(六)--回滚版本到某次提交
    8.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
    9.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
    10.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
    11.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
    12.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
    13.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
    14.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
    15.  

      那么,剩下的操作只需将这个改动文件提交并推送到远程仓库,是不是就OK了?

      下面尝试,提交并推送该改动文件。如下图,推送之后的效果。

      SourceTree使用教程(六)--回滚版本到某次提交
    16.  

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

      SourceTree使用教程(六)--回滚版本到某次提交
       
  • 相关阅读:
    SSRS Fields cannot be used in page headers or footers
    mac os x 触摸板点击无效
    Android内核sysfs中switch类使用实例
    hdu1827之强联通
    解决Gradle执行命令时报Could not determine the dependencies of task ':compileReleaseJava'.
    我对Lamport Logical Clock的理解
    側滑删除进阶(七、八)
    管理之路(成长之路--五)
    Qt跨平台的一个例程
    IOS 开发推荐经常使用lib
  • 原文地址:https://www.cnblogs.com/wl-blog/p/15434879.html
Copyright © 2011-2022 走看看