我已经从远程分支机构检出并修改了一些文件。但是我不希望在下一次提交中添加它们,因为它们仅适用于我的本地配置;事实上,我总是希望他们不被承诺。出于这个原因,我已经对这些文件应用了git update-index --assume-unchanged
。但是,现在我在从这些文件与本地文件不同的分支机构签出时遇到问题:
如果我点击“智能结账”' (这就是我需要的),它会抛出一个错误:"无法签出origin / master:以下文件的本地更改将被checkout覆盖:" 即使我点击"强制结账"它将抛出:"无法结帐原产地/主人:进入' .gitignore'不是uptodate。无法合并。"
那么如何在保持局部变化的同时从其他分支机构查看?
答案 0 :(得分:2)
出于这个原因,我总是引导人们远离assume-unchanged
。您最好的选择是找到一种不同的方式来保持您的更改不受回购。
从您的错误消息中,.gitignore
文件似乎是有问题的文件之一。非共享/本地忽略规则不属于.gitignore
;它们属于.git/info/exclude
。
其他情况可能需要单独处理。常见的情况是本地配置文件。一个典型的解决方案是仅对源代码控制模板,期望开发人员在本地创建实际的配置文件(在被忽略的路径或在repo工作树之外)。
如果你有本地/非共享版本的代码,我首先要重新审视原因。如果有必要,那么最好的解决方案可能是使用构建过程,让您从工作树之外交换代码。
最重要的是,如果您告诉git在路径上跟踪文件,那么它会尝试做到这一点。
答案 1 :(得分:0)