如何在Git中创build没有父项的提交?

可能重复:
在git中,是否有一种将不相关的分支引入到存储库的简单方法?

我有一个小型的项目,没有任何一种版本控制软件,我用同一个脚本的三个不同的版本,每个版本都做了一些与其他版本略有不同的版本。 我初始化了其中一个版本的git回购,我真的很想在没有父母的情况下犯下另外两个版本。 这样,我可以合并这些差异,就好像脚本的三个版本中的每一个都是不同分支的提示一样。

我甚至不确定这是否是解决这个问题的理智或合理的方法……任何有关如何做事情的build议,或更好的方法来处理这种情况的build议,将不胜感激。

3 Solutions collect form web for “如何在Git中创build没有父项的提交?”

从我的评论:

你为什么不创build两个分支,并添加两个其他版本,然后在分支上工作?

我认为这也同意ctcherry的回答。


但是,如果你真的想创build一个完全不同的“分支”,与主无关,那么你可以用git checkout --orphan做到这git checkout --orphangit 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理良好的方式尝试所有选项。

  • 尝试提交Git文件,但得到::致命的:LF将被CRLF <repo中的一些文件>所取代
  • .gitattributes和单个文件的合并策略
  • Git将主人合并到function分支
  • 需要重新设置git分支到原始版本
  • Git中HEAD ^和HEAD〜有什么区别?
  • 一个项目可以有多个来源?
  • 列出给定文件的所有提交(跨越所有分支)
  • 在使用git来本地跟踪一个项目之后,我怎样才能把它添加到GitHub?
  • Git:将提交的一部分应用到另一个分支
  • git中有一种方法可以获得给定提交的推送date吗?
  • 我怎样才能清理我的.git文件夹? 清理了我的项目目录,但.git仍然很大