GIT:添加文件会添加到所有分支

6

我是Git的新手。

我从主分支创建了一个新分支。我在那个分支上工作。然后,在该新分支中创建了一个新文件。接着,我切换回主分支查看一些内容。

当我切换到主分支时,发现那个新添加的文件被标记为要添加的文件?但是我不想将该文件添加到主分支。这些分支不应该完全独立吗?我是将该文件添加到新分支而不是主分支。那么,如何将分支分离开来呢?


除了Thilo的(正确)答案之外,值得记住的是,在提交代码时,您要处理的东西可以分为三个“部分”(我不确定在这里用什么术语):存储库内的提交,索引(也称为staging area或者有时称为cache),以及工作树,您可以在其中查看和编辑文件。工作树中的文件仅仅存在于工作树中。使用git add添加的文件存在于工作树索引中。在git commit之前,索引变成下一个提交,但在此之前,该文件只是漂浮在索引中。 - torek
1个回答

6
如果你在提交之前切换分支,但是已经使用git add添加了一个文件,则该文件的暂存更改将被带到新分支中(就像其他任何暂存更改一样)。你可能想在切换分支之前进行commit操作。
任何未提交的更改,包括未添加到仓库的文件,在工作副本之间切换分支时都会被保留。
只是创建一个新文件并不会自动将其添加到仓库中,您需要使用git add myFile(最终还需commit)。
或者,从另一个角度来看,即使在切换分支时文件仍然存在于您的工作副本中,除非您在那里明确添加和提交它们,否则它们不会成为其他分支的一部分。

实际上,我还没有进行 git add 操作,我只是创建了文件并将其添加到文件夹中。但听起来最好的做法是将更改存储起来,以避免出现此问题。只需要确保在切换之前完成这个操作。文件更改也会变得混乱,因为我不知道哪些文件是为哪个分支更改的。 - user1161137

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