签出时添加到分支 dev 的文件显示在另一个分支中且未合并 Visual Studio [重复]

Posted

技术标签:

【中文标题】签出时添加到分支 dev 的文件显示在另一个分支中且未合并 Visual Studio [重复]【英文标题】:File added to branch dev is showing in another branch when checking out and without merging visual studio [duplicate] 【发布时间】:2021-10-06 19:04:07 【问题描述】:

我有两个分支devbugfix

在开发上我创建了新文件TestClass.cs 这个文件没有暂存。 如果我运行 git status 它会显示

On branch dev
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        WebApplication1/TestClass.cs

nothing added to commit but untracked files present (use "git add" to track)

然后我运行git checkout bugfix 现在我也可以在这个分支中看到新添加的类TestClass.cs了。

所以如果我运行 git status 它会显示

On branch bugfix
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        WebApplication1/TestClass.cs

nothing added to commit but untracked files present (use "git add" to track)

有人可以向我解释这种行为吗?为什么这个文件在他们之间共享? 我开始知道我应该在签出之前先暂存该文件。

但我仍然想了解这种行为。为什么不只为开发分支保留它? 有时我忘记在结帐前暂存和存储更改,这会造成很大的混乱

【问题讨论】:

修改文件的相同症状:***.com/a/246298/7976758。在您的情况下,它是一个根本不属于 Git 的未跟踪文件。不去任何分支。 未暂存文件是指未跟踪的文件。我,e git 不知道该文件属于哪个分支。因此,除非您明确地将其暂存到特定分支中,否则 git 将在所有分支中显示该文件。在您明确将该文件暂存到特定分支之前,在哪个分支中创建该文件确实无关紧要。 【参考方案1】:

在它被提交到 git 之前(即当文件未被跟踪时),它不在 any 分支上。所以无论你在哪个分支,文件都会在本地。

【讨论】:

以上是关于签出时添加到分支 dev 的文件显示在另一个分支中且未合并 Visual Studio [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果在docker镜像中创建了文件,如何签出分支?

从一个分支签出到另一个分支时,Pycharm“保持更改”? [复制]

vscode 用git 拉取代码,提示:在签出前,请清理存储库工作树。请问是啥问题,如何解决。

将所有项目签出到某个分支

使用 GIT 如何将不同提交中的文件签出到新分支中? [复制]

Git:如何从远程分支更新/签出单个文件?