zoukankan      html  css  js  c++  java
  • Git常用命令和场景(三)--版本差别查看

    代码更新上线前,需要进行代码评审和走查,对于git,主要是查看现行版本和线上版本代码的差别,即使用git diff。
    首先,还是查看程序版本,git log
    [plain] view plaincopy
     
    1. [lixinglei@bogon my]$ git log  
    2. commit d87f3ea30f8e1a31ef26523c43d17237e4b7285c  
    3. Merge: bf468f2 2e47641  
    4. Author: lixinglei <lixinglei@zhangyue.com>  
    5. Date:   Tue Jul 16 21:12:58 2013 +0800  
    6.   
    7.     Merge branch 'master' of   127.0.0.1:my  
    8.   
    9. commit bf468f2aea582956e98d91af6eeea27da9812ba9  
    10. Author: lixinglei <lixinglei@zhangyue.com>  
    11. Date:   Tue Jul 16 21:08:31 2013 +0800  
    12.   
    13.     二号需求  
    14.   
    15. commit 2e476412c34a63b213b735e5a6d90cd05b014c33  
    16. Author: lixinglei <lixinglei@zhangyue.com>  
    17. Date:   Tue Jul 16 20:31:39 2013 +0800  
    18.   
    19.     一号需求——bug修复  
    20.   
    21. commit c0f28a2ec490236caa13dec0e8ea826583b49b7a  
    22. Author: lixinglei <lixinglei@zhangyue.com>  
    23. Date:   Fri Jul 16 19:41:07 2013 +0800  
    24.   
    25.     一号需求  
    26.   
    27. commit c34d6a8216a0aba5194a9b8dd2f41f7ca41499a8  
    28. Merge: 7f8fd44 32f74cd  
    29. Author: lixinglei <lixinglei@zhangyue.com>  
    30. Date:   Tue Jul 16 16:30:05 2013 +0800  
    31.   
    32.     Merge 127.0.0.1:my  
    33.   
    34. commit 32f74cd586788caf66ac1ae15281aedfb23d71db  
    35. Author: lixinglei <lixinglei@zhangyue.com>  
    36. Date:   Tue Jul 16 16:29:05 2013 +0800  
    37.   
    38.     bug1001  
    39.   
    40. commit 7f8fd44d9404859608515c7d0f389890bcc4a529  
    41. Author: lixinglei <lixinglei@zhangyue.com>  
    42. Date:   Tue Jul 16 16:24:12 2013 +0800  
    43.   
    44.     bug2002  

    如果要查看版本之间的差异,通过git diff就可以了,这里又有一些区别,关于merge的版本和非merge的版本的。如果两个版本之间是不存在分支,也就是没有经过merge的,比如在这一段时间只有一个人在一个分支上开发,然后提交更新版本,这种情况下,两个版本之间直接通过git diff 版本号就可以查看差别了。而如果是多个人同时在提交,或者一个人开了不同的分支,在提交,则后提交的在git pull之后,自动进行过merge操作,即将这段时间其他分支上(可能是不同的人提交的,也可能是同一个人开不同的分支提交的)的代码进行合并,这样在查看版本区别的时候,需要区分来看。
     
    例子中的版本中,对于有merge的情况,如:
    要查看bug1001改变的内容使用git diff "bug1001对应版本号" "merge后的版本号",即:
    git diff 32f74cd586788caf66ac1ae15281aedfb23d71db c34d6a8216a0aba5194a9b8dd2f41f7ca41499a8
    查看bug2002的改变内容则使用git diff "bug1002对应版本号" "merge后的版本号",即:
    git diff  7f8fd44d9404859608515c7d0f389890bcc4a529 c34d6a8216a0aba5194a9b8dd2f41f7ca41499a8
     
    对于没有merge的情况,如:
    要查看“一号需求bug修复”的内容,则由于“一号需求”和“一号需求bug修复”之间没有merge,即同一段时间内同一分支内提交的内容,则直接对比两个版本之间的差别即可,即:
    git diff c0f28a2ec490236caa13dec0e8ea826583b49b7a 2e476412c34a63b213b735e5a6d90cd05b014c33
     
    对于以上情况没有遵守的,会出现如下情况,如果是有分支合并的情况要查看版本差别,如查看bug1001的变化,而直接使用了连续两个版本的差别,即:
    git diff 7f8fd44d9404859608515c7d0f389890bcc4a529  32f74cd586788caf66ac1ae15281aedfb23d71db
    则会出现,对于bug1001提交的内容会正确展示,同时会将bug1002提交的部分以反向的方式展示。即如果是bug1002增加的代码,这里会显示为"-",对于bug1002删除的代码,则又会展示出"+"。看起来相当诡异...!git 的版本号不是很友好,乱糟糟的一团,不过基本不影响正常使用,只是不太容易描述,这也要求版本提示信息一定要认真填写,不然真的无从描述哪个版本了。
  • 相关阅读:
    Python004-数据处理示例:以某个数据(字段)为基准从数据中获取不同的字段行数
    VUE-004-禁止修改页面显示项,设置el-input,textarea只读方法
    VUE-003-前端表格数据展示时,设置单元格(el-table-column)保留空格和换行
    cobaltstrike4.0 cracked
    CobaltStrike3.14破解
    CobaltStrike3.12/13 破解
    Windows 10 Manager v2.3.3
    MobaXterm v10.9破解
    Jupyter/JupyterLab安装使用
    WordPress <= 4.6 命令执行漏洞(PHPMailer)复现分析
  • 原文地址:https://www.cnblogs.com/shenming/p/4378132.html
Copyright © 2011-2022 走看看