考虑以下情况:
我的.gitignore
中有以下内容:
files/dependency/config.lua
但是由于该文件在将其添加到gitignore之前已经存在,因此它正在被跟踪。我更新了索引并手动删除了文件following this question。现在,我的一位同事在远程服务器上更新了这个文件。
当我尝试结帐到远程分支时,它会显示:
错误:您对以下文件的本地更改将被覆盖 通过结帐:
files/dependency/config.lua
请在更改分支之前提交更改或存储更改。
中止
所以,我读到了它;我找到的大部分答案都告诉你使用git stash
。由于我没有对本地存储库进行任何更改,因此我无法存储它们。
我使用--force
选项结帐,但它也会返回错误:
git checkout --force -B myBranch remote/branchname
error: Entry 'files/dependency/config.lua' not uptodate. Cannot merge.
在这里,我粘贴了我的终端:
┌─[hjpotter92:HEDWIG]─[fooDir]─[06:46 PM] (master u=)
└──$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
┌─[hjpotter92:HEDWIG]─[fooDir]─[06:39 PM] (master u=)
└──$ git checkout -b myBranch remote/branchname
error: Your local changes to the following files would be overwritten by checkout:
files/dependency/config.lua
Please, commit your changes or stash them before you can switch branches.
Aborting
┌─[×]─[hjpotter92:HEDWIG]─[fooDir]─[06:39 PM] (master u=)
└──$ git stash
No local changes to save
┌─[hjpotter92:HEDWIG]─[fooDir]─[06:39 PM] (master u=)
└──$ git checkout -b myBranch remote/branchname
error: Your local changes to the following files would be overwritten by checkout:
files/dependency/config.lua
Please, commit your changes or stash them before you can switch branches.
Aborting
┌─[×]─[hjpotter92:HEDWIG]─[fooDir]─[06:39 PM] (master u=)
└──$ git checkout --force -b myBranch remote/branchname
error: Entry 'files/dependency/config.lua' not uptodate. Cannot merge.
有没有办法检查远程分支,然后在有人提取我的更改或类似内容时强制忽略文件files/dependency/config.lua
?
答案 0 :(得分:4)
我目前通过再次索引被忽略的文件使其成功。我用了命令:
git update-index --no-assume-unchanged files/dependency/config.lua
然后轻松正确地执行checkout
命令。我会在此留下这个答案。如果有人能回答以下问题,我将不胜感激:
有没有办法检查远程分支然后强行 每当有人拉扯时忽略文件
files/dependency/config.lua
在我的变化或类似的东西?
答案 1 :(得分:1)
回应您之前提出的问题:
检查git status
是否显示files/dependency/config.lua
已修改。
然后您需要按照以下步骤操作:
gitignore
。我想你已经覆盖了这个。git rm --cached files/dependency/config.lua
commit
此更改。