gpt4 book ai didi

git update-index --assume-unchanged 目录

转载 作者:IT王子 更新时间:2023-10-29 01:24:45 26 4
gpt4 key购买 nike

git 1.7.12

我想将给定目录下的所有文件标记为假设未更改。

  1. git update-index --assume-unchanged dir/ 给出“忽略路径”。

  2. git update-index --assume-unchanged dir/* 很快就会失败,因为它会遇到未被跟踪的文件,因此它给出“致命:无法标记文件”和退出。

  3. 尝试生成要标记的文件列表。 cd 进入所需的目录,然后运行 ​​git ls-files | tr '\n' ' ' | git update-index --assume-unchanged.这不会产生错误消息,但不会成功标记文件。命令的第一部分,git ls-files | tr '\n' ' ',正确生成我要标记的所有文件的空格分隔列表。如果我将该命令的输出复制并粘贴到命令行,则 git update-index 命令可以工作。什么不适用于管道?

不,我将 dir 添加到 .gitignore 是不够的。我需要将这些文件放在存储库中,但将在本地进行不需要的更改,需要忽略这些更改,以便用户可以进行 pull 。

最佳答案

git update-index 希望文件名出现在命令行上,而不是标准输入上。

第 1 步:

cd 进入你想假​​设没有改变的文件夹

第 2 步:

你可以这样做:

git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')

git ls-files | tr '\n' ' ' | xargs git update-index --assume-unchanged

虽然,无论哪种情况,带空格的文件名都会有问题。如果你有这些,你可以使用这个:

git ls-files -z | xargs -0 git update-index --assume-unchanged

编辑: merge 了@MatthewScharley 关于git ls-files -z 的输入。

Windows 命令

Note: If you're on windows, use Git Bash to run these commands

关于git update-index --assume-unchanged 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com