git查看提交历史并进行代码回退的方法

/*********************************************************************
 * Author  : Samson
 * Date    : 09/10/2014
 * Test platform:
 *              Linux ubuntu 3.2.0-58-generic-pae
 *              GNU bash, version 4.2.39
 * *******************************************************************/

经常在多协作的开发过程中,经常会进行版本的回退进行恢复版本,以便方便测试或进行代码的移出或……

那么如何查看一个文件所进行过的提交呢?
在git下来的源码目录下,执行git log 文件名  即可查看到有关此文件的所有提交;
例如:
ufo@ufo:~/plugins/automount$ git log  gsd-manager.c
commit 28810e41dbdd2f68fd0cc863455b908aab9eb695
Author: xxxx
Date:   Thu Jun 12 04:34:58 2014 +0800

    modify for blank cd

commit 55445cd02800408c8004acb629d4c6f934c3d6ce
Author: xxxx
Date:   Thu Jun 5 01:25:55 2014 +0800

    update

commit 39929d344466c026635908fb6edf73b6eab649f6
Author: xxxx
Date:   Wed Jun 4 12:00:49 2014 +0800

    disable error msgbox.

commit bbc272347cbaaa798b39d25b108bd332bbf1a795
Author: xxxx
Date:   Tue Apr 15 17:39:50 2014 +0800

    add for bug 8888

从上面可以看到对于gsd-manager.c文件来说,进行过3次提交,而我们现在要回退到第一次修改后的时候的样子(主要是源码要恢复到第一次提交时的版本)。
那么如何回退呢?
回退的命令为git reset;
而git reset命令格式为:
git reset [--mixed | --soft | --hard | --merge | --keep] [-q] []
其中各个选项的简介如下:
-q, --quiet           be quiet, only report errors
    --mixed               reset HEAD and index
    --soft                reset only HEAD
    --hard                reset HEAD, index and working tree
    --merge               reset HEAD, index and working tree
    --keep                reset HEAD but keep local changes
mixed和soft都不会恢复源代码,而hard和merge才会恢复源代码到对应的commit。
那么上面的文件要恢复到第一次提交的版本的话,那么执行的命令为:
git reset --hard bbc272347cbaaa798b39d25b108bd332bbf1a795
其中bbc272347cbaaa798b39d25b108bd332bbf1a795为第一次提交的提交号;
当然git reset这个操作也会造成其他文件在第一次版本的源代码的回退。

你可能感兴趣的:(git查看提交历史并进行代码回退的方法)