Django - Rosetta:忽略 .mo 文件问题

1 投票
2 回答
1433 浏览
提问于 2025-04-18 18:25

我正在使用:

  • Rosetta - 0.7.2
  • Django - 1.4.3

我想要做的事情:

  • 忽略 .mo 文件,但保留 .po 文件的跟踪

过去一年我一直在使用 Rosetta 和 Django,从来没有遇到过这样的问题。我想忽略 .mo 文件,但不想忽略 .po 文件。.mo 文件是 .po 文件的编译版本。我的目标是,当我在开发中更改任何翻译时,希望 git 能忽略 .mo 文件。

我在实际项目中有 9 种语言,我尝试在我的 .gitignore 文件中添加以下内容:

*.mo

但这没有效果。我还尝试过:

myapp/locale/*/LC_MESSAGES/*.mo

但也没有成功,我还试过:

myapp/locale/en/LC_MESSAGES/*.mo
myapp/locale/fr/LC_MESSAGES/*.mo
myapp/locale/es/LC_MESSAGES/*.mo
myapp/locale/tr/LC_MESSAGES/*.mo

这个方法有效,但我不想为每种语言的 .mo 文件添加路径,因为将来我可能需要添加更多语言,这样每次都修改 .gitignore 文件就太麻烦了。

有没有什么好主意可以解决这个问题?

更多信息:

  • 每次尝试新方法时,我都删除/丢弃了更改
  • 我之前有多个 .gitignore 文件,但现在只有一个
  • 据我所知,.gitignore 中的规则 *.mo 应该能忽略所有文件,不管路径如何,和 .*pyc 一样,忽略所有编译文件

2 个回答

1

步骤如下:

  1. git rm -r --cached . 这个命令会把已经被跟踪的文件从 Git 的管理中移除,但不会删除这些文件,只是让 Git 忽略它们,前提是这些文件在你的 .gitignore 文件里。
  2. 接下来,使用 git add . 命令,这个命令会把当前目录下的所有文件添加到 Git 的管理中。

  3. 最后,运行 git commit -m ".gitignore is now working",这个命令会把你刚才的更改保存到 Git 的历史记录中,并附上一个说明,告诉大家现在 .gitignore 文件已经生效了。

5

我之前也遇到过类似的问题,就是想从git中删除*.sql文件。我的问题在于,这些.sql文件已经在仓库里了,所以即使我在开发中删除了它们,并且把*.sql加到了gitignore里,git还是不会忽略它们,因为它们已经存在于仓库中了。

所以我建议你先从仓库中删除所有的.mo文件,然后再把*.mo添加到你的.gitignore文件里并上传,这样git就会忽略你所有的.mo文件了。

撰写回答