是否有可能,没有pop整个存储并保存另一个没有此特定文件?
答案 0 :(得分:2)
简短的回答:不,这不是堆栈的工作方式。您可以执行以下操作以获得您正在寻找的结果。
假设您隐藏了一些其他更改,然后对您的索引进行了一些修改(原始更改),并且您决定在修改时保留这些更改藏匿处:
#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 stash@{1} #check the changes in the stash
git stash pop stash@{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 stash@{1} #your 'original changes'
我建议这个工作流程而不是直接尝试修改存储。如果您迷失了藏匿号码,您还可以使用git stash save 'some other changes'
在某些时候(可能比你想象的更近),跟踪真正的分支会更容易。
答案 1 :(得分:1)
您可以在弹出堆栈后尝试将您不想隐藏的文件标记为“未更改”:
git update-index --assume-unchanged -- /path/to/file
,然后尝试藏匿,检查是否包含所述文件。
--assume-unchanged
--no-assume-unchanged
指定这些标志时,不会更新为路径记录的对象名称 相反,这些选项设置和取消设置路径的“假定未更改”位。
当“假定未更改”位打开时,git停止检查工作树文件是否有可能的修改,因此您需要手动取消设置该位以在更改工作树文件时告诉git。
在对lstat(2)
系统调用非常慢的文件系统(例如cifs
)处理大型项目时,这有时很有用。此选项还可以用作粗略的文件级机制,以忽略跟踪文件中未提交的更改(类似于
.gitignore
对未跟踪文件的更改)