【问题标题】:Avoid pulling files which are in .gitignore避免拉取 .gitignore 中的文件
【发布时间】:2015-12-21 14:29:26
【问题描述】:

我有 git 存储库,并且正在与其他开发人员合作。我在.gitignore 文件中写入了添加的文件夹以忽略它们。

但是,每当我执行 git add . 时,它都会从这些文件夹中添加文件。此外,当我从中提取最新代码时,使用 git pull 它会从gitignore 中列出的文件夹中获取文件。有没有办法避免获取.gitignore 中提到的文件的最新更改?

我的.gitignore文件如下图:

/log/*
!/log/.keep
/tmp
/db
/bin
/lib
/public
/test
/vendor
/.idea/*
.idea/

【问题讨论】:

    标签: git gitignore git-pull


    【解决方案1】:

    gitignore 仅用于忽略 未跟踪 文件,而您的文件已在索引中跟踪,因此 gitignore 无效。你想要的是使用git update-index --skip-worktree 选项:

    Skip-worktree 位可以用一句话(长)来定义:当读取一个条目时,如果它被标记为 skip-worktree,那么 Git 会假装它的工作目录版本是最新的,而是读取索引版本。

    将文件作为附加参数传递以将它们标记为跳过工作树,例如git update-index --skip-worktree file-a.txt file-b.txt.

    【讨论】:

    • 感谢您的信息。我一定会尝试的。有什么我可以效仿的例子吗?
    • 实际上,经过测试,这似乎不像我想的那样工作。除非你的测试证明不是这样(我可能做错了什么——已经很晚了),否则这个答案会在早上自毁。您可能还想尝试--assume-unchanged,我认为它可能会起作用,但我也认为它并不适合这个用例。
    猜你喜欢
    • 2015-01-06
    • 2019-01-31
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2013-01-03
    • 1970-01-01
    相关资源
    最近更新 更多