0

首先,我对 Git 很陌生。

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

先谢谢了

4

3 回答 3

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 

会做的工作。

更多细节:在 git 中的空项目上创建分支

第三,您可以在 git 中手动管理 refs 和 index:

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 分支

于 2013-02-19T01:06:12.147 回答
2

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

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

  • 简单:在提交任何内容之前创建所有空分支。
  • 适度:一旦您创建+签出您的分支删除(git rm)所有内容,然后添加您的文件。对新分支的第一次提交将删除并添加您的所有文件。
  • 专家:使用孤儿标志创建一个没有父提交的分支,然后如前所述删除所有文件。

git checkout --orphan NEWBRANCH

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

git rm -rf .

(删除所有文件)

于 2013-02-19T17:16:45.940 回答
0

您可以重新设置您的错误分支以从 master 开始。这样,它的文件就不会出现在另一个分支中。

于 2013-02-19T00:35:11.647 回答