Git常用命令和场景(三)--版本差别查看

代码更新上线前,需要进行代码评审和走查,对于git,主要是查看现行版本和线上版本代码的差别,即使用git diff。

首先,还是查看程序版本,git log

[plain] view plaincopy

  1. [[email protected] my]$ git log
  2. commit d87f3ea30f8e1a31ef26523c43d17237e4b7285c
  3. Merge: bf468f2 2e47641
  4. Author: lixinglei <[email protected]>
  5. Date:   Tue Jul 16 21:12:58 2013 +0800
  6. Merge branch ‘master‘ of   127.0.0.1:my
  7. commit bf468f2aea582956e98d91af6eeea27da9812ba9
  8. Author: lixinglei <[email protected]>
  9. Date:   Tue Jul 16 21:08:31 2013 +0800
  10. 二号需求
  11. commit 2e476412c34a63b213b735e5a6d90cd05b014c33
  12. Author: lixinglei <[email protected]>
  13. Date:   Tue Jul 16 20:31:39 2013 +0800
  14. 一号需求——bug修复
  15. commit c0f28a2ec490236caa13dec0e8ea826583b49b7a
  16. Author: lixinglei <[email protected]>
  17. Date:   Fri Jul 16 19:41:07 2013 +0800
  18. 一号需求
  19. commit c34d6a8216a0aba5194a9b8dd2f41f7ca41499a8
  20. Merge: 7f8fd44 32f74cd
  21. Author: lixinglei <[email protected]>
  22. Date:   Tue Jul 16 16:30:05 2013 +0800
  23. Merge 127.0.0.1:my
  24. commit 32f74cd586788caf66ac1ae15281aedfb23d71db
  25. Author: lixinglei <[email protected]>
  26. Date:   Tue Jul 16 16:29:05 2013 +0800
  27. bug1001
  28. commit 7f8fd44d9404859608515c7d0f389890bcc4a529
  29. Author: lixinglei <[email protected]>
  30. Date:   Tue Jul 16 16:24:12 2013 +0800
  31. 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 的版本号不是很友好,乱糟糟的一团,不过基本不影响正常使用,只是不太容易描述,这也要求版本提示信息一定要认真填写,不然真的无从描述哪个版本了。

时间: 2024-10-10 22:36:29

Git常用命令和场景(三)--版本差别查看的相关文章

Git常用命令及场景

Git命令推送到远程分支 1.登录GitHub创建一个远程仓库. https://github.com 2.git init 本地创建一个目录,并初始化一个git仓库. 3.git add 添加文件到当前目录下,然后执行git add ,将“修改”从当前工作区存放到暂存区. 4.it commit -m "注释语句" 将暂存区中存放的文件提交到本地git仓库. 5.git remote add origin https://远程仓库地址 将本地代码库的当前分支与远程的代码库分支相关联.

Git常用命令和场景(二)--线上版本回退

代码上线后,会遇到有问题的,有bug的,通常,最直接的就是回退到前面的某个版本: 1. 首先使用git log查看要回退到的版本 [python] view plaincopy [[email protected] my]$ git log commit ff3f2238f33256c9d3436e235c1c34d3b8147fe8 Merge: 248cba8 944274f Author: lixinglei <[email protected]> Date:   Thu Jul 4 1

Git常用命令和场景(一)--线上代码更新 和 项目代码提交

转:http://blog.csdn.net/lxlzhn/article/details/9206197 1.  项目查看或执行,用于测试环境和线上环境: git初始化: git init git拉取代码: git pull [email protected]:project.git 2. 项目开发,用于开发环境: (在 1 的基础上进行开发之后) 首先,提交代码涉及到一个配置,配置的内容是标记改代码是由哪个用户提交的,需要name和email两项,通过如下命令设置: git config -

Git 常用命令速查表(三)

转自:http://blog.csdn.net/ithomer/article/details/7529841 本文将对Git 命令,做一下全面而系统的简短总结,整理成简洁.明了的图表结构,方便查询 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git rem

git revert 后悔了 还原修改前的版本 + git 常用命令

昨天手残 然后在GitHub for windows 上点了revert 然后就给重置了 更手残的是又给同步了 .  但是 GitHub 会保留之前的版本 . 只要删掉本次修改就可. 解决方案:  gitshell ->> git revert HEAD 还原已经提交的修改此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交    git revert HEAD                  撤销前一次 commit    git revert HEA

【前端小小白的学习之路】Git常用命令整理

Git 常用命令清单. 几个专用名词的译名如下: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 二.配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局

(小组)Git 常用命令整理

Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone [email protected]:wordpress.git 添加远程版本库origin,语法为 git remote add [shortname] [url] git remote add origin [email protected]:wordpress.git 查看远程仓库 git remote -v 提交你的修改 添加当前修改的文件到暂存区 git add . 如果

Git 常用命令速查

一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释 git remote add origin [email protected]1.119:ndshow git push origin master 将文件给推到服务器上 git remote show or

Git常用命令(转)

目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识 示例:从Git 版本库的初始化,通常有两种方式: 1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份 例如:git  clone  git://git