我有一个最近开始使用版本控制的项目
在这个项目中有一个较旧的尝试,代码完全不同,我想为后代添加版本控制,但它既不是祖先也不是当前master
分支的初始提交的后代。
我希望为此创建一个新的并行分支,没有以前的历史记录(即有多个“初始提交”。这是否可以使用Git而不必创建第二个存储库?提交树看起来像这样:< / p>
o---o---o master
\
o---o branch
o old implementation
这样我只需使用git checkout old
即可访问代码。 90天后垃圾收集器不得清理它,并且可以选择标记。
答案 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>