Git Branch A有许多文件被修改(大约50个文件左右),这些文件随着时间的推移而被修改,有时在同一个提交中被修改:
例:
档案A.档案B.文件C.档案AA档案BB文件CC档案ZZ一世 …
确定您的共同祖先修订提交哈希。在下面的所有图像中都标有红色星号。我打算用 a9c146a09505837ec03b 作为示例哈希。
a9c146a09505837ec03b
一个。 git show 要么 gitk 可以帮助这个
git show
gitk
签出一个以该哈希为头的新分支(即 Branch B )
Branch B
一个。 git checkout -b Branch_B a9c146a09505837ec03b
git checkout -b Branch_B a9c146a09505837ec03b
签出特定文件 Branch A 到你的新分支 Branch B 。
Branch A
一个。即 git checkout Branch_A -- "A.file"
git checkout Branch_A -- "A.file"
或者如果您想保留您的提交消息,您可以使用 git cherry-pick ,但仅限于您的文件更改未在同一提交中混合的情况。如果您必须使用上面的示例拆分提交,那么最好 checkout 。你将失去你的历史,但如果你真的需要保留它,你可以 git checkout 在特定的提交哈希值,并遍历您的历史记录按顺序带来文件突变。严重的头痛是肯定的。
git cherry-pick
checkout
git checkout
请记住,你的哈希值会发生变化。
重复步骤2& 3根据您想要创建的分支数量的需要。避免跨多个分支更改相同的内容,这将导致合并冲突。
一些例子: