Git创建一个分支而不从默认值中合并

时间:2013-02-19 00:32:24

标签: git

首先,我对Git很新。

我的仓库中有一个名为master的默认分支,我创建了一个名为bugs的新分支,并为其添加了known_bugs.txt个文件。问题是Git不仅会将known_bugs.txt添加到bugs分支,还会显示master分支内bugs分支中的所有其他文件。有没有办法在创建新分支时不将默认分支中的文件合并为新文件?

提前致谢:D

3 个答案:

答案 0 :(得分:3)

我也是git的新手。我用谷歌搜索了一段时间,找到了三种可能的解决方案。希望能有所帮助。你可能不应该以这种方式使用分支。

首先,您可以创建一个新分支bugs并检查此分支,然后从master分支中删除所有文件,之后创建自己的文件knownbugs.txt并进行提交

git branch bugs
git checkout bugs
rm *
echo XXXX > knownbugs.txt
git commit -a -m "New branch with file knownbugs.txt"

其次,您可以创建一个空的初始提交并从中派生您的分支。

git commit --allow-empty 

将完成这项工作。

更多详情:Creating branches on an empty project in git

第三,您可以手动管理git中的引用和索引:

git symbolic-ref HEAD refs/heads/bugs
rm .git/index
echo XXX > knownbugs.txt; git add knownbugs; git commit -m
git checkout -f master
git checkout bugs

有关详细信息,请参阅Creating a git branch without ancestry

答案 1 :(得分:1)

当你在git中创建一个分支时,它是从你当前的上下文创建的。如果在创建分支时没有任何东西提交给master,则新创建的分支也将为空。如果你在分支时有2个文件提交给master,那么它将接受该提交(2个文件)并将它们移动到你新创建的分支中。

所以,如果你想建立一个空分支,你有几个选择......

  • 简单:在提交任何内容之前创建所有空分支。
  • 中等:只要你创建+结帐你的分支删除(git rm)一切然后添加你的文件。第一次提交到新分支将删除并添加所有文件。
  • 专家:使用orphan标志创建没有父提交的分支,然后删除之前说明的所有文件。

git checkout --orphan NEWBRANCH

(其中NEWBRANCH是你的分支名称)

git rm -rf .

(删除所有文件)

答案 2 :(得分:0)

你可以将你的bug分支重新定义为从master的开头开始。这样,它的文件就不会出现在另一个分支中。