【问题标题】:Git local ignore a symlinked dirGit local 忽略符号链接的目录
【发布时间】:2018-07-04 11:34:25
【问题描述】:

我有两个回购。它们都包含相同的 git 子树。

在开发过程中,我想将一个子树目录符号链接到另一个目录。

/app1
  - subtree
/app2
  - subtree -> /app1/subtree

当我在app2 上运行git status 时,我看到app2/subtree 及其内容已被删除。

我希望 git 忽略 /app2 存储库的已删除文件。

而且我希望能够向app2 提交(不涉及subtree 中的任何内容)。

我尝试将subtree/ 添加到.git/info/exclude,但删除的文件仍显示在git status 中。

我也试过git update-index --assume-unchanged subtree/,但也没用。

【问题讨论】:

    标签: git git-subtree


    【解决方案1】:

    阅读this answer后,我发现我的问题是由以下原因引起的:

    • 在删除文件之前没有运行update-index
    • 不使用通配符来忽略 update-index 的文件。

    在删除文件之前运行它可以:

    git update-index --assume-unchanged subtree/**/*(.)
    

    注意:(.) 是必需的,因为没有它我得到了fatal: Unable to mark file subtree/some-dir。并且使用**/*.* 会遗漏Vagrantfile 之类的文件。

    使用git ls-files -v | grep '^h' 来验证哪些文件是assume-unchanged

    您可以将它们添加为 git 别名 here

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 2012-09-20
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      相关资源
      最近更新 更多