2013-02-19 93 views
0

首先,我对Git很陌生。Git创建一个没有默认合并的分支

我在我的回购中有一个名为master的默认分支,我创建了一个名为bugs的新分支,并为其添加了一个known_bugs.txt文件。问题是,Git不仅将添加到bugs分支,而且它还显示bugs分支内的master分支的所有其他文件。有没有一种方法可以简单地在创建新分支时不将文件从默认分支合并到新分支中?

在此先感谢:d

+2

做树有 “枝” 只是浮在半空中那,还是他们从树的树干开始?这不是一个关于合并的问题。 – hobbs 2013-02-19 00:33:44

回答

1

发生了什么事情是,当你在你的当前上下文创建的git中创建一个分支。如果您在创建分支时没有任何承诺要掌握,则新创建的分支也将为空。如果您有2个文件在分支时承诺掌握它,它将采用该提交(2个文件)并将它们移动到您新创建的分支中。

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

  • 简单:创建commiting任何事情之前所有的空分支。
  • 中等:只要你创建+检出你的分支删除(git rm)一切然后添加你的文件。第一次提交到新分支将删除并添加所有文件。
  • 专家:使用孤立标志创建没有父提交的分支,然后删除所有文件,如前所述。

git checkout --orphan NEWBRANCH

(其中NEWBRANCH是你分支名)

git rm -rf .

(删除所有文件)

+0

好的,这非常感谢你! – Bennett 2013-02-21 17:34:10

+0

没有问题。 upvote me; D – xero 2013-02-21 18:58:11

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以获取更多信息。

+0

这帮了很多谢谢你的答案! – Bennett 2013-02-21 17:34:44

相关问题