我有一个git分支,上面有一个正常的Git提交历史记录;在整个开发周期中都有添加/修改/删除。
我想回滚到以前的提交,但要保留当前提交中的文件,而该文件不在我要回滚的提交中(或者翻转它的头,从以后不存在的提交中检出文件在当前提交中)。
例如:
--------A--------B--------- ...
+ myFile.txt;
$ git checkout #A
我想签出#A提交,但是保留myFile.txt
在commit中添加的提交#B
。
您可以使用git checkout来执行此操作,它将路径作为可选参数:
git checkout <commit> <path>
假设您当前正在使用哈希B进行提交,并且您要重置所有文件,但goodFile.txt除外,其状态来自提交A。
git checkout A
检出要从中获取大部分文件的提交
git checkout B goodFile.txt
现在从提交B中检出特定的好文件
git commit goodFile.txt
提交。
您现在将使用A作为其父对象的新提交,该提交包含A中的所有文件和B中的goodFile.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句