git revert 单个文件_Java开发工具Idea必备技能之Revert操作

Revert是撤销操作,类似于Ctrl+Z,不同的是,Revert是以版本为单位,撤销整个版本。可以这样理解Revert操作,假如有V1、V2、V3、V4、V5五个版本,Revert撤销V3版本,实际上就是合并V2版本和V5版本,并对V2版本和V5版本中都存在的有差异文件提示冲突。

举例说明

(1)如果我在版本V1上新建A、B两个文件提交后成版本V2,在版本V2上新建C、D两个文件提交后成版本V3。我用Revert撤销版本V2的内容。点击Revert后,A、B文件消失,因为A、B是我新建的文件,但是C、D文件会保留下来。可以看出来,Revert只会撤销选定版本的修改。

(2)如果我在版本V1上修改A、C提交后成版本V2,在版本V2上修改C、D提交后成版本V3。我用Revert撤销版本V2的内容,这时代码库的结构是:A会变回版本V1的内容,D仍然是版本V3的内容,但是文件C会产生冲突。

Revert正确姿势

(1)撤销当前操作是Revert的正确选择,千万不要尝试跨版本Revert。就像上面提到的五个版本,你应该首先Revert V5版本,然后V4版本,一层一层往下执行,而不要一来就Revert V3版本,这样做的好处是不会导致代码混乱。如果想把代码回滚到V3版本,那么执行两次Revert操作就可以,先Revert V5版本,然后Revert V4版本。不过在实际工作中不会这么做。

e76b340189a02ed71097981818d225e6.png

(2)在实际工作中用的最多的是撤销工作区或暂存区的代码。比如我在V5版本上修改了一些代码,但是还没有提交,这时我发现代码有问题,需要回退到V5版本,这时Revert就可以派上大用场。

4fb94aab1bc5e00923b8a3c654494421.png

扩展阅读

git本地代码库包含工作区、暂存区(index:add之后)、版本库(HEAD:commit之后)

本地代码都保存在工作区中,但是代码有状态之分,简单说下状态流转:新增加的文件为Untracked(未跟踪)状态,执行git add后变成Staged(已暂存)状态,Staged状态执行git commit则将修改同步到版本库中,最后通过push将版本库中的文件上传到远程仓库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值