首先,我对 Git 很陌生。
我的仓库中有一个默认分支master
,我创建了一个名为的新分支bugs
并向其中添加了一个known_bugs.txt
文件。问题在于,Git 不仅会添加known_bugs.txt
到bugs
分支,而且还会显示master
分支内部的所有其他文件bugs
。有没有办法在创建新分支时不将默认分支中的文件合并到新分支中?
先谢谢了
首先,我对 Git 很陌生。
我的仓库中有一个默认分支master
,我创建了一个名为的新分支bugs
并向其中添加了一个known_bugs.txt
文件。问题在于,Git 不仅会添加known_bugs.txt
到bugs
分支,而且还会显示master
分支内部的所有其他文件bugs
。有没有办法在创建新分支时不将默认分支中的文件合并到新分支中?
先谢谢了
我也是 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 分支。
发生的事情是当您在 git 中创建一个分支时,它是从您当前的上下文中创建的。如果您在创建分支时没有向 master 提交任何内容,那么您新创建的分支也将是空的。如果您在分支时有 2 个文件提交给 master,它将接受该提交(2 个文件)并将它们移动到您新创建的分支中。
所以,如果你想创建一个空分支,你有几个选择......
git checkout --orphan NEWBRANCH
(其中 NEWBRANCH 是您的分支名称)
git rm -rf .
(删除所有文件)
您可以重新设置您的错误分支以从 master 开始。这样,它的文件就不会出现在另一个分支中。