【发布时间】:2012-03-28 14:13:50
【问题描述】:
我正在研究 git 的一个分支,它有两个文件 A.c 和 B.c。
我正在创建对A.c 和B.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