git:由于Gemfile.lock文件导致中止,即使它位于.gitignore文件中也会被覆盖

时间:2011-03-04 13:33:35

标签: git

我用git拉我的项目。

我收到此错误:error: Your local changes to 'Gemfile.lock' would be overwritten by merge. Aborting.

但是'Gemfile.lock'在我的.gitignore文件中,所以git不应该对覆盖这个文件感兴趣。

任何帮助?

Greets,Joern。

2 个答案:

答案 0 :(得分:0)

当git忽略某个文件时,只有在执行递归git add时才会将其排除。但是git永远不会覆盖存储库中的文件(如果没有跟踪它)(最少惊喜的原则)。被忽略的文件可能很昂贵(时间,......)来生成。

但是,即使忽略了某个文件,也有人可以提交具有相同名称的文件(使用git add -f或者因为他们在同一次提交中更改了.gitignore文件)。

因此,如果在提交中错误地添加了文件,则可以重写历史记录以将其删除(如果尚未共享存储库),您可以创建一个新的提交,删除其他分支中的文件,然后合并它,或者您可以移走本地文件,合并并恢复本地文件。

答案 1 :(得分:0)

Gemfile.lock必须已经成为存储库的一部分,否则git不会抱怨它。