【问题标题】:Unable to mark file in git无法在git中标记文件
【发布时间】:2017-02-17 10:16:13
【问题描述】:

我试图忽略对 .gitignore 文件所做的更改。为了实现这一点,我在 git bash 上使用了这个命令 git update-index --assume-unchanged bin/.gitignore

当我执行时,我在我的 git bash 上看到 Unable to mark file bin/.gitignore 响应。

如何解决这个问题,为什么我会遇到这个问题?

我也试过这个链接,但没有帮助

git update-index --assume-unchanged returns "fatal unable to mark file"

【问题讨论】:

  • 您确定给定的相对路径正确吗? bin/.gitignore 文件在您的 CWD 下吗?
  • @Kent 是的,我使用了正确的路径,它在 CWD 下。
  • 如果路径正确,文件是否已经进入 git 阶段?如果它从未添加过,你也会出错
  • 简单,请报告cmd的输出:git ls-files --error-unmatch /yourPath/file
  • 我知道这对您当前的问题没有帮助,但如果您想在本地排除文件,请将它们的模式放入 .git/info/exclude。该文件永远不会被提交,并且非常适合告诉 git 仅忽略此工作树中的某些文件。

标签: git bash


【解决方案1】:

在与 cmets 交谈并获得更多信息后,我将其发布为答案。

原因很可能是,你要设置assume-unchanged位的文件没有被git跟踪。在评论中,我提到了命令:

git ls-files --error-unmatch /yourPath/file

你可以检查一个文件是否被 git 跟踪。

如果它没有被跟踪,你不能更新索引,因为它还没有被索引。您可以将其添加到您的 .gitignore 文件中,以便 git 忽略它。

【讨论】:

    【解决方案2】:

    我认为您的 .gitignore 是未跟踪的文件。使用 git status 检查它。如果它未被跟踪,您将无法为该文件 update-index。 最好先添加并提交 update-index 或物理删除它,然后从您的存储库中提取更改。

    【讨论】:

      【解决方案3】:

      确保文件的相对路径正确。

      试试这个:

      $ pwd                        # see working directory 
      $ ls -la ./bin/              # see if .gitignore file exist!
      $ git update-index --assume-unchanged ./bin/.gitignore
      

      还要查看您的bin/.gitignore 文件是否列在git ls-files -o 中。

      $ git ls-files -o    # Show other (i.e. untracked) files in the output
      

      如果找到.gitignore 文件,则找到addcommit。那就试试undate-index

      $ git add .
      $ git commit -m 'Message'
      
      $ git update-index --assume-unchanged ./bin/.gitignore
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-25
        • 1970-01-01
        • 1970-01-01
        • 2012-10-06
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多