如何在Git中创build没有父项的提交?
可能重复:
在git中,是否有一种将不相关的分支引入到存储库的简单方法?
我有一个小型的项目,没有任何一种版本控制软件,我用同一个脚本的三个不同的版本,每个版本都做了一些与其他版本略有不同的版本。 我初始化了其中一个版本的git回购,我真的很想在没有父母的情况下犯下另外两个版本。 这样,我可以合并这些差异,就好像脚本的三个版本中的每一个都是不同分支的提示一样。
我甚至不确定这是否是解决这个问题的理智或合理的方法……任何有关如何做事情的build议,或更好的方法来处理这种情况的build议,将不胜感激。
从我的评论:
你为什么不创build两个分支,并添加两个其他版本,然后在分支上工作?
我认为这也同意ctcherry的回答。
但是,如果你真的想创build一个完全不同的“分支”,与主无关,那么你可以用git checkout --orphan
做到这git checkout --orphan
。 git checkout
的手册介绍了选项--orphan
:
创build一个名为<new_branch>的新的孤立分支,从<start_point>开始并切换到它。 在这个新的分支上做的第一次提交将没有父母,这将是一个新的历史与所有其他分支和提交完全断开的根源。
你可以像这样使用它:
git checkout --orphan version2 git rm -rf . <add version2 script> git add your files git commit -m 'Initial commit for version 2'
如果你的Git大于1.7.2(当git checkout --orphan
被引入的时候),那么你可以使用Git Community Book中的“Creating New Empty Branches”中的alternate命令序列:
有时候,您可能希望在存储库中保留不与您的普通代码共享祖先的分支。 一些这样的例子可能会产生文档或沿着这些线。 如果你想创build一个不使用当前代码库作为父代的新分支头,你可以像这样创build一个空分支:
git symbolic-ref HEAD refs/heads/newbranch rm .git/index git clean -fdx <do work> git add your files git commit -m 'Initial commit'
您可以为每个版本的脚本创build一个分支,并将它们提交给这些单独的分支。 然后把它们一次一个地合并回主人。 这应该有你正在寻找的效果。
为什么不从“空”回购(如上面的问题陈述的单一自述)开始。 然后,您可以分三次,并将不同的脚本版本添加到每个分支中,并分别提交它们。
然后,您可以分支/编辑/提交/合并,并以pipe理良好的方式尝试所有选项。