【问题标题】:How do I move diff contents of one file to another (in git)?如何将一个文件的差异内容移动到另一个文件(在 git 中)?
【发布时间】:2016-09-20 09:53:04
【问题描述】:

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

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

【问题讨论】:

    标签: git refactoring mv


    【解决方案1】:

    存储差异/补丁

    您将需要一个补丁/差异来说明您想要做什么。你可以通过多种方式做到这一点,但我发现最简单的方法是following

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

    修改差异

    现在我们要更改差异,以便将其应用于新文件

    改变

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

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

    应用差异

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

    git apply changes.diff

    清理(可选)

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

    git rm old.file

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      相关资源
      最近更新 更多