如何在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分支
  • 从git / GitHub的历史logging中删除文件夹及其内容
  • 如何将文件和文件夹添加到GitHub仓库?
  • 单个修订版的git日志
  • Git - 推送当前分支的快捷方式
  • 在XCode 4中,如何将远程GitHub存储库添加到现有的本地项目?
  • 如何将文档与Github页面同步?
  • 推送提交与Github时出错:致命:无法读取用户名
  • 我如何使用git提交文件?
  • Git分支在rebase之后分歧
  • 检查被推送的标签是否在git远程