一个文件的“git format-patch”等效命令是什么?

29

我的一位同事 fork 了我的项目,我们想将他修改后的单个文件合并到我的代码库中,并保留其历史记录(主要是提交日志)。

问题在于,他提交代码时有些不规范,提交包含其他文件的差异,这些文件与该项目(或需要合并到原始代码库中的内容)无关。

我希望能够使用“git format-patch”提取历史记录,但仅针对单个文件(或者可能是两个文件,.cpp 和 .hpp 文件)。我无法找到“format-patch” 的选项来实现这个目标。

这种做法可行吗?

谢谢!

1个回答

38

嗯...实际上就像这样简单:

git format-patch commit_id file(s)

其中的 commit_id 是第一个创建补丁的父提交,接着是所需的文件或文件...


4
如果你想跟踪的一些文件在主分支本地不存在,只需在文件名前面添加“--”符号: git format-patch --output-directory myPatch commit-id-begin..commit-id-end -- file1 file2 file3 - Autiwa
1
直到我看到这个 - https://dev59.com/hGsz5IYBdhLWcg3weHgA#7885229 - 我才解决了我的问题。我需要使用 git format-patch -1 commit_id -- file(s) - Russell England

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接