挑选特定文件的所有提交历史记录

Cherry-picking all commit history of a particular file

假设我想挑选一个回购的特定文件的完整提交历史,但回购有多个文件并且提交甚至没有,即第一次提交是我想要挑选的特定文件第二和第三是其他文件,第四是特定文件等等..

在这种情况下,我如何才能在该特定文件的一次拍摄中挑选所有提交,不包括对其他文件完成的提交..

我知道,

$ git cherry-pick abc^..xyz

上面的命令不会工作,因为它会挑选我也想排除的其他提交..

所以我的问题是,有什么方法可以在一条命令中完成我的要求吗??

您还需要提交历史记录吗?

一个选项是

git show <treeish>:<file>

然后提交文件,虽然它有效地"squashes"提交

你也可以用这个

How to cherry pick only changes for only one file, not the whole commit

git diff <branch>^..<branch> -- <filename> | git apply