我有一个小项目,在没有任何版本控制软件的情况下进行开发,最终得到了三个不同版本的脚本,每个版本的脚本略有不同。我使用其中一个版本初始化了git仓库,现在我想提交另外两个版本,但是不想与已有的提交记录产生关系。这样,我就可以将这三个版本的脚本看作不同分支的末端,然后进行合并。
我甚至不确定这是否是解决问题的合理方式... 如果您有关于如何按照这种方式操作或者更好的处理这种情况的建议,将不胜感激。
我有一个小项目,在没有任何版本控制软件的情况下进行开发,最终得到了三个不同版本的脚本,每个版本的脚本略有不同。我使用其中一个版本初始化了git仓库,现在我想提交另外两个版本,但是不想与已有的提交记录产生关系。这样,我就可以将这三个版本的脚本看作不同分支的末端,然后进行合并。
我甚至不确定这是否是解决问题的合理方式... 如果您有关于如何按照这种方式操作或者更好的处理这种情况的建议,将不胜感激。
根据我的评论:
为什么不创建两个分支并将其它两个版本添加到这些分支中,然后再在分支上工作呢?
我认为这也会与 ctcherry 的回答相符。
但是如果你真的想要创建一个与主分支无关的完全不同的“分支”,那么你可以使用 git checkout --orphan
。 git checkout 手册 描述了选项 --orphan
的工作方式:
创建一个新的孤立分支(orphan branch),名为 <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 社区书籍中提供了说明:
偶尔,您可能希望在代码库中保留一些与常规代码没有共同祖先的分支。 例如,这些分支可能是生成的文档或类似内容。 如果您想创建一个不使用当前代码库作为父级的新分支头,则可以像这样创建一个空分支:
git symbolic-ref HEAD refs/heads/newbranch rm .git/index git clean -fdx <do work> git add your files git commit -m 'Initial commit'
git checkout --orphan
,赞成这种方法,即使我的git版本1.7.1还不支持。但是看起来Ubuntu 11.04将包含git 1.7.4,所以我只需要再等待两个星期。 - Paŭlo Ebermanngit checkout
后,您还可以使用 git reset --hard
命令来移除暂存的文件。 - Thai