Git:两​​个初始提交

时间:2013-09-11 14:18:42

标签: git branch

我有一个最近开始使用版本控制的项目 在这个项目中有一个较旧的尝试,代码完全不同,我想为后代添加版本控制,但它既不是祖先也不是当前master分支的初始提交的后代。

我希望为此创建一个新的并行分支,没有以前的历史记录(即有多个“初始提交”。这是否可以使用Git而不必创建第二个存储库?提交树看起来像这样:< / p>

o---o---o   master
     \
      o---o   branch

o   old implementation

这样我只需使用git checkout old即可访问代码。 90天后垃圾收集器不得清理它,并且可以选择标记。

3 个答案:

答案 0 :(得分:15)

git checkout可以选择使用这种用例:--orphan

来自Git手册:

  

--orphan <new_branch>

     

创建一个名为<new_branch>的新孤立分支,从<start_point>开始并切换到它。在这个新分支上进行的第一次提交将没有父项,它将成为与所有其他分支和提交完全断开的新历史的根。

此外,该男子明确表示:

  

如果要启动记录一组完全不同于<start_point>的路径的断开连接的历史记录,则应在创建孤立分支后立即清除索引和工作树,方法是运行“ git rm -rf .“来自工作树的顶层。

答案 1 :(得分:6)

除了使用checkout --orphan方法之外,您还可以在其他代码库中创建一个单独的存储库,进行初始提交,然后推送到另一个存储库(或从其他存储库中提取) )

cd old-code
git init
git add .
git commit -m 'Initial commit of historical codebase'
git push ../path/to/current/code/repository master:historical

之后,如果您不需要它,可以再次删除存储库(rm -rf old-code/.git)(但不应该受到伤害)

答案 2 :(得分:3)

您需要创建一个孤儿分支:

git checkout --orphan <branch>