首先,我对Git很新。
我的仓库中有一个名为master
的默认分支,我创建了一个名为bugs
的新分支,并为其添加了known_bugs.txt
个文件。问题是Git不仅会将known_bugs.txt
添加到bugs
分支,还会显示master
分支内bugs
分支中的所有其他文件。有没有办法在创建新分支时不将默认分支中的文件合并为新文件?
提前致谢:D
答案 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 checkout --orphan NEWBRANCH
(其中NEWBRANCH是你的分支名称)
git rm -rf .
(删除所有文件)
答案 2 :(得分:0)
你可以将你的bug分支重新定义为从master的开头开始。这样,它的文件就不会出现在另一个分支中。