有一个文件被跟踪git,但现在该文件在.gitignore列表中.
但是,该文件在git status编辑后会一直显示.你怎么强迫git完全忘掉它?
我的初始提交包含一些日志文件.我已添加*log到我的.gitignore,现在我想从我的存储库中删除日志文件.
git rm mylogfile.log
Run Code Online (Sandbox Code Playgroud)
将从存储库中删除文件,但也将从本地文件系统中删除它.
如何在不删除文件的本地副本的情况下从存储库中删除此文件?
我在我的机器上设置了一个本地git.当我初始化git时,我添加了预编译的库和二进制文件.但是,现在在开发过程中,我不想间歇性地检查这些文件.我不想从repo中删除这些文件.在完成开发之前,有没有办法不跟踪这些文件.(我想我不能使用.gitignore,因为它仅适用于那些不在git中的文件.我想暂时禁用文件跟踪.)
我对一个我不想提交到我的存储库的文件进行了本地更改.它是用于在服务器上构建应用程序的配置文件,但我想在本地使用不同的设置进行构建.当然,当我将'git status'作为要上演的东西时,该文件总是显示出来.我想隐藏这个特定的更改而不是提交它.我不会对文件进行任何其他更改.
经过一番挖掘后,我看到了两个选项:'假设未改变'和'跳过工作树'.这里的前一个问题谈到了它们,但并没有真正解释它们之间的区别.我的问题是:这两个命令有何不同?为什么有人会使用其中一个?
我需要从跟踪中排除文件夹(名称上传).我试着跑
git rm -r --cached wordpress/wp-content/uploads
Run Code Online (Sandbox Code Playgroud)
然后我添加了.gitignore的路径
/wordpress/wp-content/uploads
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时,git status他们显示为已删除.如果我尝试提交更改,则文件将被删除,不仅会从跟踪中删除.
我究竟做错了什么?
我也试过了
git update-index --assume-unchanged <file>
Run Code Online (Sandbox Code Playgroud)
但这似乎只解开文件.但我需要从跟踪中删除整个文件夹(包括子文件夹).
我遇到了与此帖相同的问题 - git update-index --assume-unchanged返回错误 但我不明白答案被标记为正确(我没有看到它解释了如何解决这种情况)
我这样做并得到这个错误:
$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
Run Code Online (Sandbox Code Playgroud)
那么我该怎么做才能解决?
是否可以将.gitignore文件添加到.gitignore自身?
.gitignore
Run Code Online (Sandbox Code Playgroud)
虽然不起作用
我不想在编辑过的文件中看到它
git 1.7.12
我想将给定目录下的所有文件标记为假设未更改.
1)git update-index --assume-unchaged dir/给出"忽略路径".
2)git update-index --assume-unchaged dir/*快速失败,因为它会遇到未被跟踪的文件,因此它给出"致命:无法标记文件"并退出.
3)尝试生成要标记的文件列表. cd进入所需目录然后运行git ls-files | tr '\n' ' ' | git update-index --assume-unchanged.这不会产生任何错误消息,但不会成功标记文件.命令的第一部分git ls-files | tr '\n' ' '正确生成了我要标记的所有文件的空格分隔列表.如果我将该命令的输出复制并粘贴到命令行,则该git update-index命令有效.什么不使用管道?
不,我添加dir到.gitignore 是不够的.我需要将这些文件放在存储库中,但是需要在本地进行不需要的更改,以便用户可以进行拉取.
我已经创建了该文件.gitignore_global并将其放在我的git安装目录中.当我运行命令时:
git config --global core.excludesfile ~/.gitignore
Run Code Online (Sandbox Code Playgroud)
忽略文件中的规则不会应用于我的提交.
当我重命名文件.gitignore并将其放入我的项目根目录时,规则确实适用.
这有什么不对?
我有一个数据库配置文件,其默认值不重要.但是,对此文件的任何更改都将包含不应在repo中跟踪的敏感信息.
我希望Git存储库的未来可以包含默认版本,但忽略任何用户所做的任何更改.
以下内容保留了本地配置,但将删除推送到repo导致将来拉出的问题.
cat "app/dir/config.file" >> .gitignore
git rm --cached app/dir/config.file
Run Code Online (Sandbox Code Playgroud)
以下是这项工作,但不会持续超过对回购的推动.
git update-index --assume-unchanged app/dir/config.file
Run Code Online (Sandbox Code Playgroud)
这似乎是围绕敏感信息进行版本控制的常见要求,但我似乎无法找到解决方案.
git ×10
git-rm ×3
gitignore ×2
repository ×2
command-line ×1
delete-file ×1
git-index ×1
github ×1
pipe ×1