如何将一个文件的差异内容移动到另一个文件(在 git 中)?

How do I move diff contents of one file to another (in git)?

我在 git 中合并到 master 时遇到问题。 我在本地分支 (old.file) 中处理的文件已在 master 中移动并重命名(至 new.file)。 将 master 合并到我的分支后,我现在有了新文件并对旧文件进行了工作更改。

如何将 old.file 的更改内容移动到 new.file? 我只想将 old.file 的 20 多行更改行移动到 new.file 中,然后删除 old.file.

商店diff/patch

您将需要 patch/diff 您想要做什么。您可以通过多种方式执行此操作,但我发现最简单的方法是 following:

git diff <some SHAid or HEAD^ or etc...> -- old.file > changes.diff

修改差异

现在我们要更改差异,以便它可以应用于 new.file

改变

---a/old.file
+++b/old.file

---a/new.file
+++b/new.file

应用差异

现在补丁将指向正确的文件

git apply changes.diff

清理(可选)

请务必从存储库(和本地文件)中删除 old.file,因为它可能不再需要。

git rm old.file