GIT如何将提交从分支拆分为不同的分支?

时间:2018-06-20 11:26:20

标签: git

我有一个分支,其中包含对功能A,B,C,D的提交。我大约有40个提交,并且每个提交都按混合顺序排列。 我已经提出了拉取请求,但是我需要将该分支分为与每个功能相关联的提交,分为分支A,分支B等。因此功能A在分支A中提交。

不幸的是,我是git的新手,它仍然使我感到困惑。您如何从单个分支中提取提交并将其放入自己的分支中?

2 个答案:

答案 0 :(得分:2)

您可以使用git cherry-pick 为功能A创建新分支,在其上签出并使用:git cherry-pick a_commit_hash。 对所有提交重复一次

答案 1 :(得分:0)

尝试使用以下语法:

git checkout -b A_branch <SHA-1 hash for commit A>
git push origin A_branch

第一个命令基于A提交创建一个名为A_branch的新分支。它还会签出该分支。然后,我们将您的新分支推送到远程。只需对四个提交中的每一个重复上述两个命令,就可以完成。

注意:要找出四个提交中每个提交的SHA-1哈希,可以从当前分支的HEAD运行git log。 SHA-1哈希看起来像这样:

3dk92dk2lvnkls ...

这是某些提交的提交哈希。

编辑:

请注意,这些操作不会影响您的原始分支。创建并推送所需的所有内容后,可以通过以下方式返回到原始分支:

git checkout original_branch