首先,我对Git很陌生。Git创建一个没有默认合并的分支
我在我的回购中有一个名为master
的默认分支,我创建了一个名为bugs
的新分支,并为其添加了一个known_bugs.txt
文件。问题是,Git不仅将添加到bugs
分支,而且它还显示bugs
分支内的master
分支的所有其他文件。有没有一种方法可以简单地在创建新分支时不将文件从默认分支合并到新分支中?
在此先感谢:d
首先,我对Git很陌生。Git创建一个没有默认合并的分支
我在我的回购中有一个名为master
的默认分支,我创建了一个名为bugs
的新分支,并为其添加了一个known_bugs.txt
文件。问题是,Git不仅将添加到bugs
分支,而且它还显示bugs
分支内的master
分支的所有其他文件。有没有一种方法可以简单地在创建新分支时不将文件从默认分支合并到新分支中?
在此先感谢:d
发生了什么事情是,当你在你的当前上下文创建的git中创建一个分支。如果您在创建分支时没有任何承诺要掌握,则新创建的分支也将为空。如果您有2个文件在分支时承诺掌握它,它将采用该提交(2个文件)并将它们移动到您新创建的分支中。
所以,如果你想创建一个空的分支,你有几种选择...
git checkout --orphan NEWBRANCH
(其中NEWBRANCH是你分支名)
git rm -rf .
(删除所有文件)
你可以重订你的错误分支,从掌握的一开始启动。这样,它的文件就不会出现在其他分支中。
我对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以获取更多信息。
这帮了很多谢谢你的答案! – Bennett 2013-02-21 17:34:44
做树有 “枝” 只是浮在半空中那,还是他们从树的树干开始?这不是一个关于合并的问题。 – hobbs 2013-02-19 00:33:44