如何将新文件夹添加到Git分支而不将其添加到主分支?

4
如何将新文件夹添加到git的分支中,而不让该文件夹出现在主分支中?
e.g. 
git branch myNewBranch
git checkout myNewBranch
mkdir foo

git checkout master
ls

myNewBranch目录也被添加到主分支中

2个回答

9

仅仅创建了文件夹并不意味着git会自动开始进行版本控制。你创建的文件夹对于git来说是未知的,所以git不会对其进行操作。

git init #create repo
touch file1.txt
git add file1.txt
git commit -m 'initial commit'
git branch newBranch
git checkout newBranch
mkdir folder
touch folder/file2.txt
git add folder #tell git we want to track the folder
git commit -m 'second commit'
git checkout master
# folder/file2.txt is not available as expected.

编辑:为了澄清,您示例中的文件夹并没有被添加到主分支,实际上它也没有被添加到任何分支。


简而言之,您的意思是执行添加和提交操作,然后您将获得预期的结果。我测试过了,它有效。谢谢。 - binarygiant
如果您不将文件添加到暂存区并提交,Git 将采取安全措施,不会对它们进行更改。 - Alex Ionescu

9
您似乎有两个误解让您感到困惑。
1. Git在您切换分支时不会覆盖未暂存的更改。您需要在Git对该文件执行任何操作之前(例如在检查不同分支时修改或删除它),将其添加和提交(add和commit)。 2. Git不跟踪目录,只跟踪文件。您不能在Git中对空目录进行版本控制。如果您想将空目录提交到Git中,则常规解决方法是在该目录中添加一个空的.gitignore并将其提交。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接