Git bug?将显示在其他分支中创建的文件

Git bug?将显示在其他分支中创建的文件,git,branch,Git,Branch,我创建了一个新的回购协议: git init 创建了一个新文件并向其中添加了文本 touch hello.txt 创建了一个新分支: git branch -b halo 创建了一个新文件并向其中添加了文本 touch halo.txt 从技术上讲,这个文件不应该显示在分支主控中。即使我在新的分支中跟踪它,它也显示在master中跟踪。在过去的3-4个月里,我没有使用git分支,我想知道是否发生了一些变化,或者是否总是这样?如果您没有将文件提交到分支,它们就不在分支中。如果您刚刚添加了g

我创建了一个新的回购协议:

git init
创建了一个新文件并向其中添加了文本

touch hello.txt
创建了一个新分支:

git branch -b halo
创建了一个新文件并向其中添加了文本

touch halo.txt

从技术上讲,这个文件不应该显示在分支主控中。即使我在新的分支中跟踪它,它也显示在master中跟踪。在过去的3-4个月里,我没有使用git分支,我想知道是否发生了一些变化,或者是否总是这样?

如果您没有将文件提交到分支,它们就不在分支中。如果您刚刚添加了
git
,那么您就准备好了这些文件。它们被分支以任何方式跟踪。如果在某些文件处于暂存状态时切换分支,它们仍将处于暂存状态。从我记事起就一直是这样

原始答案(供参考)

你一定做错了什么。您没有共享所有命令,最明显的是提交以及如何显示分支的内容。但是考虑一下:

$ git init /tmp/test1
$ cd /tmp/test1
$ touch hello.txt
$ git add .
$ git commit -m added
[master (root-commit) 12778a0] added
 0 files changed
 create mode 100644 hello.txt
$ git checkout -b halo
Switched to a new branch 'halo'
$ touch halo.txt
$ git add halo.txt
$ git commit -m 'added halo'
[halo 9a2b380] added halo
 0 files changed
 create mode 100644 halo.txt
$ git checkout master
Switched to branch 'master'
$ git ls-files
hello.txt
$ git ls-files --with-tree halo
halo.txt
hello.txt
一切按计划进行。这在Git 1.7.10.4中

您的命令中有一个错误:

git branch -b halo

至少在我的版本中,
git branch
没有
-b
选项。我想你的意思是git checkout-bHalo,这就是我上面使用的。

这可能不是git中的bug。请解释如何“显示”在其他分支中创建的文件。您使用的是
git status
?在切换到新分支之前,您是否向每个分支添加了
git
git commit
文件?很抱歉,这是我对
git branch-b…
的错误。好的,一个简单的问题,如果您不提交,但让特定的分支使用
add
跟踪文件,该怎么办;它还会在其他分支中显示吗?这正是我的问题。[我没有提交新文件;我正在使用新分支跟踪它。]