这个问题在这里已经有了答案:





Can git ignore a specific line?

(9 个回答)


6年前关闭。



.gitignore 可以忽略整个文件,但是有没有办法在编码时忽略特定的代码行?

我经常并反复在项目中添加相同的调试行,只需要记住在提交之前删除它们。我只想保留代码中的行并让 git 忽略它们。

最佳答案

这就是您可以使用 git filters 进行操作的方法:

  • 创建/打开 gitattributes 文件:
  • <project root>/.gitattributes(将提交到repo)
  • <project root>/.git/info/attributes(不会提交到repo)
  • 添加一行定义要过滤的文件:
  • *.rb filter=gitignore ,即在所有 gitignore 文件 0x291911224233 上运行名为 *.rb 的过滤器
  • 在您的 gitignore 中定义 gitconfig 过滤器:
  • $ git config --global filter.gitignore.clean "sed '/#gitignore$/d'" ,即删除这些行
  • $ git config --global filter.gitignore.smudge cat ,即从 repo
  • pull 文件时什么都不做

    笔记:
    当然,这是针对 ruby​​ 文件的,当一行以 #gitignore 结尾时应用,在 ~/.gitconfig 中全局应用。根据您的目的修改它。

    警告!!
    这使您的工作文件与存储库不同(当然)。任何 check out 或 rebase 都将意味着这些行将丢失!这个技巧似乎没用,因为这些行在 check out 、 rebase 或 pull 时反复丢失,但我有一个特定的用例来利用它。

    当过滤器处于非事件状态时,只是 git stash save "proj1-debug"(只是在 gitconfig 或其他东西中暂时禁用它)。这样,我的调试代码始终可以 git stash apply 随时添加到我的代码中,而不必担心这些行会被意外提交。

    我对处理这些问题有一个可能的想法,但我会尝试在其他时间实现它。

    感谢 Rudi 和 jw013 提到 git 过滤器和 gitattributes。

    关于git - 如何告诉 git 忽略个别行,即特定代码行的 gitignore,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16244969/

    10-16 16:36