Gcode in Xcode 6.3:Master分支以红色显示来自其他分支的新文件,不会编译

时间:2015-04-17 18:04:07

标签: xcode git swift branch master

我正在使用Xcode的集成源代码控制和Git,我遇到了以下问题:

我有一个完美工作的主分支,我想开发两个新功能。所以我创建了两个新分支,在每个分支处添加一个新文件。

现在,当我切换回主分支或其他分支时,在提交更改并且没有合并(我不想合并)之后,来自所有分支的文件出现在项目导航器中(那些不属于当前分支的是红色)并阻止我的代码编译,因为编译器抱怨这些文件不存在。

我的主人至少应该编译,不管我在其他分支中做了什么?

我在这里错过了一些小事吗?

1 个答案:

答案 0 :(得分:1)

未跟踪的文件和未分级的更改不属于任何分支。他们只住在你工作的树上。切换分支时,这些文件/更改保持不变。如果您希望它们仅存在于某个分支中,则必须添加并提交所有这些分支。

这应该有助于理解:

$ git status
On branch master
nothing to commit, working directory clean

$ >>file echo 'added line'

$ touch new_file

$ git status
On branch master
Changes not staged for commit:

  modified: file

Untracked files:
  new_file

$ git checkout -b new_branch
M       file
Switch to a new branch 'new_branch'

$ git status
On branch new_branch
Changes not staged for commit:

  modified: file

Untracked files:
  new_file

因此,如您所见,切换分支时会进行非分段更改(这是设计使然)。当签出另一个分支时,Git会告诉您哪些文件包含更改(以M odified开头的行)。这也适用于未跟踪的文件(Git无法删除它们,因为您可能需要它们),但在检出分支时它们的名称不会明确输出。

要在切换分支时让Git删除文件,您必须先将它们添加(并提交!)到分支。