git branches显示相同的内容

时间:2013-03-04 19:13:29

标签: git branching-and-merging

我是git的新手,正在学习分支和合并。

当我执行以下操作时:

  

git checkout -b test

创建了一个新分支,我切换到该分支。 当我:

  

vim testfile

并输入一些文本并保存,testfile按预期创建。 但是,当我通过以下命令切换到另一个分支时:

  

git checkout master

  

git checkout unrelatedBranch

我发现测试文件也存在于具有相同内容的其他分支中。

这种行为与我对分支如何工作的理解不一致。一些互联网资源表明我在这里使用的命令是需要的。

有人可以告诉我我做错了什么或为什么这是理想的行为?

3 个答案:

答案 0 :(得分:3)

testfile未跟踪,您的更改未提交。

因此,testfile 在所有分支上都不是。它位于 no 分支上。 Git不知道它就在那里,所以当它切换分支时它无法将其清除出工作目录。这是有用的(如果是意外的)行为,因为你不喜欢让git搞乱未跟踪的文件。

执行:

git add testfile
git commit -m "Adding testfile to branch test"
git checkout master

你会看到testfile消失。

答案 1 :(得分:3)

看起来testfile不受版本控制。

首先尝试运行git status,看它是否在testfile下列出Untracked files

示例:

git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   testfile
no changes added to commit (use "git add" and/or "git commit -a")

如果您在上面的示例中看到testfile下列出了untracked files,则需要使用git add命令将其添加到版本控制中。

git add testfile

最后,不要忘记使用git commit

提交更改

答案 2 :(得分:2)

可能是因为没有跟踪文件。

尝试执行:git add testfile将其添加到新分支。