无法结账主分公司

Man*_*olo -1 git git-checkout

我一直在一个分支机构工作,有一些代码来改进应用程序.既然我已经完成了,我想将这个分支与master分支合并,但我不能.我首先尝试像这样检查主分支:

$ git checkout master
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

error: The following untracked working tree files would be overwritten by checkout:
vendor/bin/doctrine
vendor/bin/doctrine.php
...
Run Code Online (Sandbox Code Playgroud)

但供应商目录包含在.gitignore文件中.如果我做:

$ git status
Run Code Online (Sandbox Code Playgroud)

我明白了:

# On branch mejoras_contralador
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

在此之后,我会这样做:

$ git merge branch
Run Code Online (Sandbox Code Playgroud)

如何避免这个错误?

mu *_*u 無 6

所以这里的问题是,在你当前的分支上(让我们调用它current),vendor目录所在.gitignore并且不是repo的一部分.

但是,它在您的master分支中提交,因此,您的主分支正在抛出错误The following untracked working tree files would be overwritten by checkout

解决方案很简单.

1)在您的分支中current,将您的供应商目录重命名为其他目录(例如vendor.temp,您可以使用mv vendor vendor.temp)

2)现在做一个git checkout master.这次不会引发任何冲突,因为您尝试从中检出的分支上没有已存在的公共供应商目录.

3)现在git rm -r --cached vendor在你的master分支上运行一个.这将删除在您的master分支中跟踪的供应商目录.

4)更新分支中的.gitignore文件master以开始忽略vendor目录.提交相应的更改

5)确定您需要哪个供应商目录vendor,分支中的目录master或分支中的vendor目录current,并相应地重命名/删除文件.