无法切换分支 - "错误:未跟踪的工作树文件......"我应该添加git吗?

MEM*_*MEM 5 git

我在我的.gitignore文件中有这个:

/nbproject/
/app/runtime/
/app/runtime/application.log*
/app/runtime/error.log*
/app/config/localdev.php*
.DS_Store
Run Code Online (Sandbox Code Playgroud)

1)我已经结账到主分公司,然后再次结账,回到开发分公司.

2)一旦我回到dev分支,我丢失了所有/ nbproject /文件和所有/app/config/localdev.php!也许其他人,但由于他们是由php框架uppon运行时自动生成的,我无法真正说出来!

3)然后我切换回主分支,我在那里得到了那些文件.

4)我将这些文件复制到其他地方,然后我再次切换到dev分支.

5)我将那些丢失的文件放回/ nbproject /文件夹中.

现在,如果我尝试切换到Master分支,我会得到这个:

Error: The following untracked working tree files would be overwritten by checkout:     
    nbproject/private/config.properties      
    nbproject/private/private.properties     
    nbproject/private/private.xml    
    nbproject/project.properties     
    nbproject/project.xml 

    Please move or remove them before you can switch branches.  

    Aborting
Run Code Online (Sandbox Code Playgroud)

我知道我应该做一个git add .在存储库中移动这些文件,我不明白的是:

为什么git抛出这个消息如果在发出git checkout命令之前我有nbproject/ignore呢?

题:

重点是忽略这些文件.无论是主人还是开发者.我的问题是:如何解决这个问题,以便:

a)首先: 将这些文件(gitignore上的文件)恢复到dev?

b)第二: 采取措施再次避免这种冲突.

Ada*_*ruk 7

您可以在其他分支中跟踪它们.或者,您可以添加--force到checkout命令以使用master拥有的文件来删除文件.或者,您可以git clean -xdf在签出master之前从工作目录中删除文件.

  • `git clean -xdf` 可能会删除您可能想要的文件。尝试使用 `git clean -fdxn` 首先检查将要删除的内容。 (2认同)

MEM*_*MEM 4

为解决问题而采取的步骤。学分转到:jszakmeister

1)我已将项目克隆到其他地方。

2)我已经在那个克隆上检查了master。

3)将 gitignore 放入 master 中,因为它从一开始就应该在那里: git show dev:.gitignore > .gitignore

4)我通过执行 git rm “gitignore 上的所有文件一一”从树中删除了文件

5)我已将 .gitignore 文件添加到存储库中。

6)提交

7)切换回原来的repo并执行:

8) git fetch /path/to/fix-project master:master

9) git checkout master,我得到: 切换到分支 'master' 你的分支比 'hub/master' 领先 1 个提交。这是我的远程主分支。

10)推送到远程主机。

11)再次检查开发人员