需求背景

我们可以通过reset命令或者revert命令来回滚某个提交,但是一次提交可能包括多个文件,我只想回滚某个具体的文件,而不想回滚整个提交,怎么实现呢

需求实现

主要借助git checkout命令来实现对某个文件的回滚。

一,使用git log命令找到对应文件的提交历史

git log 文件名//得到该文件的提交历史

二,使用git checkout命令将该文件重置到某个提交的状态

git checkout commitId 文件名
这时,相应文件就会重置到这个提交时的状态,改动的信息会存放到暂存区。

三,进行提交

git commit

sourcetree上如何回滚某个文件

  1. 找到你想回滚的文件,右击选中“选定项目的变更历史”

image.png

  1. 从提交历史中,找到你想重置的那个commit版本

image.png

  1. 右击,点击“重置到提交..”

image.png

  1. 出现弹框点击确定,改动就会存在在缓存区了。

image.png

参考文章

https://www.jianshu.com/p/9f5def57ba54