我有包含三个提交的分支。现在我想创建这三个提交的三个新分支,每个提交应该是单独的分支,我该如何实现呢?
答案 0 :(得分:1)
阅读问题和评论(来自OP),我相信在git中存在关于 分支的混淆。分支只是一个指向提交的小粘滞便笺。分支在git中不是一个“重”对象,所以你并没有真正“用这些提交创建新的分支”,也没有理由说“每个提交应该是一个不同的分支”;你只需标记一个提交“mybranch1”,另一个提交“mybranch2”等等。这些命令由@TimBiegeleisen(git branch <name> <commit>
)提供。
阅读关于git
如何构建其数据的一些初级读物可能有所帮助。 http://gitready.com/beginner/2009/02/17/how-git-stores-your-data.html
答案 1 :(得分:0)
我假设您需要三个独立的分支,每个分支都从原始分支中获取一个提交。
您可以通过创建orphan branches,然后cherry-picking提交来完成此操作。
例如:
git checkout --orphan branch1
git reset --hard
git cherry-pick <hash-of-commit-1>
以及其他两个提交。
答案 2 :(得分:0)
您希望以下列方式使用git branch
:
git branch branch_name <sha1-of-commit>
因此,您需要使用以下三个提交中的三个分支:
git branch branch1 <commit #1>
git branch branch2 <commit #2>
git branch branch3 <commit #3>
要查找三次提交的SHA-1哈希,可以在相关分支上键入git log
。检查日志,直到找到要从中分支的三个提交。
答案 3 :(得分:0)
从原始提交创建新分支,然后cherry-pick
您想要的提交:
# From the master branch
git branch branch-1 HEAD~2
git checkout -b branch-2 master~3
git cherry-pick master~1
git checkout -b branch-3 master~3
git cherry-pick master