Git:两​​个初始提交

Nic*_*nks 13 git branch

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

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

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

o   old implementation
Run Code Online (Sandbox Code Playgroud)

这样我就可以简单地git checkout old用来访问代码了.90天后垃圾收集器不得清理它,并且可以选择标记.

Mar*_*Łoś 19

git checkout对这种用例有一个选择:--orphan.

从Git手册:

--orphan <new_branch>

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

此外,该男子明确地说:

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


kni*_*ttl 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
Run Code Online (Sandbox Code Playgroud)

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