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 <xxxx@xxxx.com>
Date:   Thu Jun 12 04:34:58 2014 +0800

    modify for blank cd

commit 55445cd02800408c8004acb629d4c6f934c3d6ce
Author: xxxx <xxxx@xxxx.com>
Date:   Thu Jun 5 01:25:55 2014 +0800

    update

commit 39929d344466c026635908fb6edf73b6eab649f6
Author: xxxx <xxxx@xxxx.com>
Date:   Wed Jun 4 12:00:49 2014 +0800

    disable error msgbox.

commit bbc272347cbaaa798b39d25b108bd332bbf1a795
Author: xxxx <xxxx@xxx.cn>
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] [<commit>]
其中各个选项的简介如下:
-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这个操作也会造成其他文件在第一次版本的源代码的回退。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将本地代码回退历史代码,可以使用git reset命令。具体步骤如下: 1. 首先,确定要回退到的历史提交的commit哈希值。可以使用git log命令查看提交历史,并找到目标提交的哈希值。 2. 执行以下命令将本地代码回退历史提交的状态(包括该提交): ``` git reset --hard <commit哈希值> ``` 这将会丢弃当前的所有未提交的更改,并将代码回退到指定的历史提交状态。 3. 如果需要将回退后的代码推送到远程仓库,可以使用git push命令。如果你是在一个共享的分支上工作,可能需要使用--force选项来强制推送: ``` git push origin <分支名> --force ``` 这将会强制将本地回退后的代码推送到远程仓库。 请注意,回退代码可能会导致丢失未提交的更改,请确保在执行回退操作之前进行备份。此外,强制推送可能会覆盖远程仓库中的代码,请谨慎使用。 #### 引用[.reference_title] - *1* [git代码回退方法](https://blog.csdn.net/weixin_39910711/article/details/128822788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [git分支代码回退历史某次commit(不推荐此方法只做记录)](https://blog.csdn.net/weixin_42768546/article/details/123774506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值