这个问题在这里已经有了答案:
Can git ignore a specific line?
(9 个回答)
6年前关闭。
.gitignore
可以忽略整个文件,但是有没有办法在编码时忽略特定的代码行?
我经常并反复在项目中添加相同的调试行,只需要记住在提交之前删除它们。我只想保留代码中的行并让 git 忽略它们。
最佳答案
这就是您可以使用 git filters 进行操作的方法:
<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 笔记:
当然,这是针对 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/