将分支引入git历史

时间:2018-09-06 16:30:47

标签: git

我有一个仓库,我希望再次分支一些提交。

假设我在master分支上提交了C1,C2,C3,C4,C5。

我希望master停止并且C3和C4开始一个新分支。

我将如何实现这一目标?我尝试了几种不同的方法,但是没有任何运气。

1 个答案:

答案 0 :(得分:0)

分支实际上只是对单个提交的引用。您想到的其他所有内容都是拟人化。或整形。如果您希望master引用提交C3,并希望一个名为“ dev”的分支引用提交C5,那么最简单的方法是:

git branch dev
git reset ${HASH_OF_C3}

第一个命令在当前HEAD(C5)处创建一个分支。第二个重置当前分支(主)以提交C3。执行这些命令后,您的工作目录将被视为脏目录(所有文件的内容位于提交C5,但您当前已将master分支检出,并且位于C3)。您可以检出dev(git checkout dev),也可以清理(git reset --hard)。初次重置时,您还可以添加--hard选项。可能想结束签出的'dev'分支,所以也许您想要:

git checkout -b dev   # Create new branch at current commit
git branch -f master ${SHA_OF_C3}  # Make master refer to C3