【问题标题】:isolate a file into a different branch and also retain its history将文件隔离到不同的分支并保留其历史记录
【发布时间】:2012-03-28 14:13:50
【问题描述】:

我正在研究 git 的一个分支,它有两个文件 A.cB.c

我正在创建对A.cB.c 都进行了更改的补丁

但现在我希望对 B.c 所做的所有更改都与此分支隔离并创建为不同的分支,此分支也应该具有 B.c 的所有历史记录。

这看起来像是一个明显的用例,因为我们可能会在中间决定 B.c 是一个非常关键的文件,因此需要一个不同的分支,因为其他人可能需要处理它。

【问题讨论】:

  • Git 中的分支通常是存储库级别的 - 也就是说,您通常不会创建单独的分支来跟踪特定文件的历史记录。
  • 我的意思是我想创建一个包含 B.c 的单独分支,并且它还应该具有文件的历史记录
  • 我不明白你为什么需要那个。为什么“关键文件”需要自己的分支?
  • 这样别人可以接手它的开发,误加了,不需要分开,同时需要保留历史
  • git reset HEAD^, unstage files 对应 HEAD^, xc 和 yc 对应 HEAD^ 的文件, git reset HEAD xc yc (这会从 HEAD 的索引中删除 xc 和 yc),git add Ac, git commit , 这里添加一行 Change ID: ,这将创建一个只有 Ac 的分支,做类似的事情来创建只有 Bc 的分支(类似但不同的步骤)

标签: git git-branch


【解决方案1】:

假设你已经提交了 A.c 和 B.c,你可以:

最终结果是一个只有B.c 补丁的新分支,以及B.c 的完整历史记录。

【讨论】:

    猜你喜欢
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多