【问题标题】:git, don't show me *.pyc in the list of untracked files!git,不要在未跟踪文件列表中显示 *.pyc !
【发布时间】:2009-03-12 20:57:37
【问题描述】:

做的时候:

>git status

它在“未跟踪的文件”下显示大量 .pyc 文件。我不希望它显示这些,因为它会增加噪音。

换句话说,如何让 git 始终忽略所有项目的 .pyc 文件?

编辑

我并不是在寻求一种将我忽略的文件传播给其他人的方法,我只是说“针对所有项目”,这意味着我不想将每个新项目都配置为忽略 .pyc 文件。

更新

我应该补充一点,我在 windows 上工作,我的 git 是 msysgit

用户希望 git 在所有情况下忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常进入用户 ~/.gitconfig 中由 core.excludesfile 指定的文件。

.gitconfig 是文件还是文件夹?我的主目录中没有这样的东西 (C:\users\<myusername>\)

更新2

谢谢大家的回复,

我通过以下方式解决了问题:

>git config --global core.excludesfile c:\git\ignore_files.txt

并将 *.pyc 放入 c:\git\ignore_files.txt

【问题讨论】:

    标签: git version-control ignore


    【解决方案1】:

    正如gitignore中提到的,git有3 ignore files:

    • 应该受版本控制并通过克隆分发到其他存储库的模式(即所有开发人员都希望忽略的文件)应该进入 .gitignore file。

    (照顾所有时间:如果有人克隆您的 repo,它将获得 .gitignore 文件)

    • 特定于特定存储库但不需要与其他相关存储库共享的模式(例如,存在于存储库中但特定于一个用户工作流的辅助文件)应该进入 $GIT_DIR/info/排除文件。

    (在你的情况下不感兴趣)

    • 用户希望 git 在所有情况下都忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常放在 core.excludesfile 指定的文件中>user's ~/.gitconfig。

    (负责所有项目,但不是所有时间,因为在克隆您的存储库时不会复制它。)

    “所有项目的所有时间”意味着例如用于创建新 git 项目的自定义 shell,其中自定义 .gitignore 作为第一次提交的第一个文件部分......

    【讨论】:

    • +1:综合答案。除了你应该提到core.excludesfile 可以设置每个项目 以及全局设置。
    【解决方案2】:

    放入文件~/.gitignore:

    *.pyc
    

    运行:

    git config --global core.excludesfile ~/.gitignore
    

    我同意@David Wolever,如果有的话,应该谨慎使用这个选项。

    ~/.gitignore(Windows 上为"%HOME%\.gitignore")只是一个约定,您可以使用任何您喜欢的文件名,例如"c:\docs\gitignore.txt"。

    【讨论】:

    • 为什么要谨慎使用?
    • @Gnuey:这是一个适用于所有 git 存储库的全局设置。仅将它用于您想要忽略的文件“所有时间和所有项目”
    • @9000: “不适合我” 信息量不是很大。你运行了什么命令?您尝试了哪些其他解决方案?它们中的任何一个对你有用吗?你期望会发生什么?相反会发生什么?你的操作系统是什么git 版本?如果当前的答案都不适合您,请提出单独的 SO 问题。
    • @J.F.Sebastian 我编辑了~/.gitignore,添加了该行,然后运行您列出的命令。为了安全起见,也在我的 git repo 的.gitignore 中这样做了。然后我运行 git status 仍然看到一堆未跟踪、未忽略的 PYC 文件。问题是,我会毫无问题地忽略其他文件类型,但这些 PYC 文件特别拒绝被忽略。如果重要的话,这些 PYC 文件是由 PyCharm 生成的。我有 git 版本 2.3.2 (Apple Git-55)。很抱歉最初的不好评论;我对 PYC 文件堵塞了我的 git repo 并且无法忽略它们感到非常沮丧。
    • ^ 我的意思是“未上演”,而不是“未跟踪”。无论如何,我做了一些测试......事实证明,在文件已经被添加到 git 的跟踪文件并至少提交一次之后,你不能忽略它们。我的 PYC 文件之前已经提交过,所以为时已晚。我不知道。值得注意。
    【解决方案3】:
    git config --global core.excludesfile "c:\program files\whatever\global_ignore.txt"
    

    然后,添加

    *.foo
    

    到那个文件。

    【讨论】:

    • 糟糕。使用“git config --global core.excludesfile ...”在 Git 的全局配置中进行设置。这应该适用于所有项目。
    【解决方案4】:

    忽略某些文件模式的另一种方法是: 将 *.pyc 添加到 .git/info/excludes,这是一种更简洁的方式。

    【讨论】:

      【解决方案5】:

      添加

      *.pyc
      

      在 .gitignore 文件中

      然后运行这个

      git config --global core.excludesfile .gitignore
      

      这对我有用

      【讨论】:

        【解决方案6】:

        如果我记得,有一种设置全局 .gitignore 的方法......但问题是你不能与其他人共享它(也就是说,拉你代码的其他人会看到 .pyc文件)。

        所以,恕我直言,最好将它添加到您开始的每个项目的 .gitignore 中。出于这个原因,我保留了一个股票 .gitignore。


        或者你可以切换到 bzr,它带有一个合理的默认列表,可以忽略 ^_^

        【讨论】:

        • bzr 是用 Python 编写的。如果它不能很好地处理 Python 特定的东西,那将是出乎意料的。
        • 确实如此。我不知道默认值的全部范围,但我知道它们也处理 Vim/Emacs 交换/备份文件、.o 文件等。
        • 有人会认为 bzr 忽略一台 mac 上的 .DS_Store 文件是明智的,但事实并非如此,我记得 svn 确实有广告。我认为它默认只忽略 pyc 文件,它是用 python 编写的,也可能是用 emacs 编写的:)
        • 为什么 bzr 的实现语言会规定它忽略哪些文件?按照这个逻辑,Git 默认应该忽略 *.o 文件。
        【解决方案7】:

        你不能添加

        *.pyc

        到你的 .gitignore?

        【讨论】:

        • git 存储库的 .gitignore 不适用于“所有时间和所有项目”。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-04
        • 2018-08-31
        • 2019-10-30
        • 1970-01-01
        • 2013-03-14
        • 2015-05-07
        • 1970-01-01
        相关资源
        最近更新 更多