如何在不将新文件夹添加到主文件夹的情况下将其添加到git分支

如何在不将新文件夹添加到主文件夹的情况下将其添加到git分支,git,git-branch,Git,Git Branch,如何向git中的分支添加新文件夹,而不让该文件夹显示在主分支中 e.g. git branch myNewBranch git checkout myNewBranch mkdir foo git checkout master ls myNewBranch目录也被添加到master,因为您创建了文件夹,git不会自动启动版本控制。git不知道您创建的文件夹,因此git不会接触它 git init #create repo touch file1.txt git add file1.txt

如何向git中的分支添加新文件夹,而不让该文件夹显示在主分支中

e.g. 
git branch myNewBranch
git checkout myNewBranch
mkdir foo

git checkout master
ls

myNewBranch目录也被添加到master

,因为您创建了文件夹,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.

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

您似乎有两个误解让您感到困惑

  • 切换分支时,Git不会覆盖未老化的更改。您需要
    添加
    提交
    一个文件,Git才会对该文件执行任何操作(比如在签出其他分支时修改或删除它)
  • Git不跟踪目录,它只跟踪文件。无法在Git中设置空目录的版本。如果要将空目录提交给Git,传统的解决方法是在该目录中添加一个空的
    .gitignore
    ,然后提交该目录

  • 简言之,您的意思是执行一个add-and-commit,您将得到预期的结果。我测试了这个,它是有效的。谢谢。正确,如果你不准备(添加)并提交你的文件,git会采取安全的方式,不会弄乱它们。