【问题标题】:.gitignore only on local.gitignore 仅在本地
【发布时间】:2023-03-03 09:09:21
【问题描述】:

我想知道如何 gitignore 文件,但只能在本地,而不是推送它(因为从事该项目的其他人不应该得到我在那里添加的文件的 gitignore 更新。

简单来说,在 git status 之后我只有:

        modified:   .gitignore

因为我将要忽略的文件添加到我的 gitignore 但现在我希望上面的行在不推送的情况下消失。

【问题讨论】:

标签: git github gitignore


【解决方案1】:

VSCode 中的另一个选项是使用 Git Exclude 扩展名,它基本上可以通过右键单击将任何文件/文件夹添加到您的 .git/info/exclude 文件中

【讨论】:

    【解决方案2】:

    对于本地忽略 you should use the .git/info/exclude file,而不是 .gitignore

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

    这两个文件接受相同的格式。

    【讨论】:

      【解决方案3】:

      .gitignore 文件包含要防止提交/推送到远程仓库的文件和文件夹的列表。

      但是,提交和推送.gitignore 文件总是可以接受的。这是一种非常普遍的做法。因此,提交 .gitignore 文件并继续编写您的代码。

      阅读此thread 以获取有关提交.gitignore 文件的参考/良好做法。

      【讨论】:

        【解决方案4】:

        应该提交 Gitignore 文件,因为在大多数情况下,您忽略的内容也会被团队中的其他开发人员忽略。

        但如果您绝对需要将其排除在本地更改跟踪之外,您可以执行以下操作:

        git update-index --assume-unchanged .gitignore

        这会使它从修改后的列表中“消失”。尽管如果其他人更改它,您将不会在拉动时得到更改。然后,您需要执行以下操作以将其带回跟踪列表并再次拉取:

        git update-index --no-assume-unchanged .gitignore

        【讨论】:

        • git update-index --assume-unchanged 是最好避免使用的脚炮。原因在于名称——即使你确实改变了一些东西,忽略你所做的事实。 git status 会说一切都已提交并且工作正常,即使您对现实的看法与另一个拥有“相同”(但实际上不是)代码版本的人的看法不同。在这种情况下,您最好使用.git/info/exclude
        • @jsageryd 这仅适用于 .gitignore,并且 “会说一切都已提交并且工作正常,即使您对现实的看法与另一个人的看法不同” 正是 OP 想要的。
        • 我在一个配置文件中使用它,它在 windows 中的行为与 linux 不同,而且由于我是团队中唯一使用 windows 的开发人员,因此弄乱他们的配置是没有意义的,所以我只是使用这个从 git 中排除了文件。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-05
        • 2016-12-23
        • 2012-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多