【问题标题】:How to git ignore ipython notebook checkpoints anywhere in repository如何git忽略存储库中任何地方的ipython笔记本检查点
【发布时间】:2016-06-25 07:22:44
【问题描述】:

这主要是一个 git 问题。我想提交我的 ipython 笔记本,但 gitignore 检查点。

repo 有多个文件夹,每个文件夹都有 ipython 笔记本,因此忽略一个目录并不能解决它。我想继续添加带有笔记本的新文件夹而不必担心。

我的直觉是,必须有一种方法可以使用通配符来gitignore 名为 */.ipynb_checkpoints/ 的文件夹中的任何内容,但无法弄清楚。

那么,我如何 git 忽略存储库中的所有 ipython notebook 检查点,无论它们在哪里?

【问题讨论】:

    标签: git commit gitignore jupyter-notebook


    【解决方案1】:

    如果你添加到.gitignore:

    .ipynb_checkpoints
    

    (任何地方都没有斜杠),repo 中具有该名称的任何文件或目录都将被忽略。仅当您包含 / 时才会检查路径。

    来自this answer,您还可以为您的计算机设置一个全局 gitignore:

    git config --global core.excludesfile '~/.gitignore'
    echo '.ipynb_checkpoints' >> ~/.gitignore
    

    【讨论】:

    • 这似乎应该工作,但由于某种原因对我不起作用。在根存储库文件夹中,我的检查点位于notebooks/.ipynb_checkpoints/,我不能终生忽略它们!我尝试在我的 .gitignore 中添加带有和不带有斜杠的路径。我试过你的建议。我尝试添加很多星星。有什么想法吗?
    • @Engineero 你告诉 git 你的.gitignore 文件和git config 在哪里?
    • @Engineero:你已经提交了一些吗? .gitignore 事后不能忽略(如果它们已经提交)
    • @CiprianTomoiaga 它找到我的.gitignore 就好了,其他文件和文件夹将被忽略。我不知道为什么这不起作用,但我发现了一些有用的东西。我将其添加为答案。
    • @Mr_and_Mrs_D 我也遇到了这个问题,但我只是取消了文件的索引并在.gitignore 中尝试了其他方法。我最终能够使用一些我将添加作为答案的东西来使它工作。
    【解决方案2】:

    我建议在您的.gitignore 文件中使用**/*.ipynb_checkpoints/

    【讨论】:

      【解决方案3】:

      添加到您的.gitignore

      .ipynb_checkpoints
      */.ipynb_checkpoints/*
      

      你应该很高兴。

      【讨论】:

        【解决方案4】:

        如果你还没有推送你的代码,添加

        .ipynb_checkpoints
        

        到你的 .gitignore

        如果您之前已经推送过代码,请添加 .ipynb_checkpoints 到您的 .gitignore。这将确保 .ipynb_checkpoints 将来会被忽略,但不会删除旧的 .ipynb_checkpoints

        您必须手动删除相应分支中每个文件夹中的缓存。首先转到具有 .ipynb_checkpoints 的文件夹并执行

        git rm -r --cached .ipynb_checkpoints
        

        【讨论】:

        • 我遇到了这个问题并查看了各种答案,但这一个为我解决了这个问题。事实上,我首先独立找到了解决方案,并且在检查时才看到这个。需要明确的是,如果您在 git status 中有持久文件,即使您将它们的文件夹包含在 .gitignore 中,请检查这些文件之前是否已提交。最简单的方法是使用上面的git rm 命令。 --cached 标志将确保您保留本地副本。
        • 太好了,这对我很有帮助!
        【解决方案5】:

        有时您可能会忘记您已经在 git 存储库中跟踪文件(就像我的情况一样)。所以你可能必须先取消跟踪它

        git rm --cached Folder_with_ipynb/.ipynb_checkpoints/news-checkpoint.ipynb
        

        然后添加到您的.gitignore 行:

        */.ipynb_checkpoints/*.ipynb
        

        【讨论】:

          【解决方案6】:

          这行得通。

          Folder/.ipynb_checkpoints/*.ipynb
          

          【讨论】:

            【解决方案7】:

            出于某种原因,当前的答案都不适合我。通过添加以下内容,我最终能够让 git 忽略我的所有检查点文件(以及任何其他不需要的隐藏文件和文件夹):

            .*  # ignore all hidden files and folders
            !/.gitignore  # explicitly do not ignore .gitignore
            

            到我的.gitignore repo 基目录中的文件。这是一个广泛的扫描,如果你想在你的仓库中保留隐藏文件,维护起来会很痛苦,但除了我的.gitignore,我不需要任何文件,所以它对我有用!

            【讨论】:

            • 是的,对我来说以上都不起作用。即使是你提出的。创建检查点时,它会显示在 git status 中。
            • @pebox11 对我来说也一样,没有检查点似乎是不可能的,但最后 Ashok Kumar 关于缓存文件的回答对我有帮助。
            【解决方案8】:

            我使用了命令rm -rf .ipynb_checkpoints。这对我有用。

            【讨论】:

            • 即删除文件夹,而不是忽略。这是一个误导性的答案。
            猜你喜欢
            • 2017-08-19
            • 2016-04-06
            • 2014-02-05
            • 2023-01-25
            • 1970-01-01
            • 2015-01-16
            • 1970-01-01
            • 2013-05-03
            • 2018-06-15
            相关资源
            最近更新 更多