Git在不进行默认合并的情况下创建分支



首先,我对Git还很陌生。

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

提前感谢:D

我也是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 

将完成这项工作。

有关更多详细信息:在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

有关更多信息,请参阅创建没有祖先的git分支。

当您在git中创建分支时,它是从当前上下文中创建的。如果在创建分支时没有任何提交给master的内容,那么新创建的分支也将为空。如果您在分支时有两个文件提交给master,它将执行该提交(2个文件)并将它们移动到新创建的分支中。

所以,如果你想做一个空的分支,你有几个选择。。。

  • simple:在提交任何内容之前创建所有空分支
  • mediate:创建并签出分支后,删除(git-rm)所有内容,然后添加文件。第一次提交到新分支将删除和添加所有文件
  • 专家:使用孤立标志创建一个没有父提交的分支,然后如前所述删除所有文件

git checkout --orphan NEWBRANCH

(您的分行名称是NEWBRANCH)

git rm -rf .

(删除所有文件)

您可以重新调整Bug分支的基础,从master的一开始就开始。这样,它的文件就不会出现在另一个分支中。

相关内容