是否可以从git存储中删除单个文件?
答
简短的回答:不,这不是如何栈作品。尽管如此,您可以执行以下操作来获取所需的结果。
假设你已经藏匿了一些其他变化,然后做出一些修改索引(原创变化)和您决定要保留这些变化,同时修改藏匿:
#verify the state you are in
git stash list
git status
git stash #push work in progress on the stash
git stash list #check which stash you need
git stash show [email protected]{1} #check the changes in the stash
git stash pop [email protected]{1} #you're now ready to change your 'other' changeset
# hack hack
git stash #modified 'other' change set pushed on the stash
git stash pop [email protected]{1} #your 'original changes'
我建议这个工作流程直接试图修改存储。如果你迷路了,你还可以使用git stash save 'some other changes'
在某个点(可能比你想象的更近)跟踪真正的分支更容易。
答
你可以试试,你弹出堆栈,以纪念该文件后,你不想藏匿的“不变”:
git update-index --assume-unchanged -- /path/to/file
,然后尝试藏起来,检查是否包含所述文件或不。
--assume-unchanged
--no-assume-unchanged
当指定这些标志,不更新记录的路径对象名称。
而是,这些选项设置和取消设置路径的“假定不变”位。当“假设不变”位打开时,git停止检查工作树文件以进行可能的修改,因此当您更改工作树文件时,需要手动取消设置该位以告诉git。
在处理系统调用速度很慢的文件系统(例如cifs
)上的大型项目时,这有时会很有帮助。这个选项也可以用来作为粗略文件级别机制忽略跟踪的文件提交的更改(类似于什么
.gitignore
确实为未跟踪文件)