4

如何在 git 的分支中添加一个新文件夹而不让该文件夹出现在 master 分支中?

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

git checkout master
ls

myNewBranch 目录也添加到 master

4

2 回答 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.

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

于 2013-07-26T20:52:55.343 回答
8

看起来你有两个让你困惑的误解。

  1. 当您切换分支时,Git 不会覆盖未暂存的更改。在 Git 对该文件执行任何操作之前,您需要addcommit一个文件(例如在您签出不同的分支时修改或删除它)。
  2. Git 不跟踪目录,它只跟踪文件。您不能在 Git 中对空目录进行版本控制。如果你想向 Git 提交一个空目录,传统的解决方法是.gitignore在该目录中添加一个空目录并提交。
于 2013-07-26T20:56:33.463 回答