是否有可能,没有弹出整个存储并在没有这个特定文件的情况下保存另一个?
问问题
3218 次
2 回答
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'
在某些时候(可能比您想象的更接近)跟踪真实分支会更容易。
于 2010-06-27T06:32:33.353 回答
1
在弹出堆栈后,您可以尝试将您不想存储的文件标记为“未更改”:
git update-index --assume-unchanged -- /path/to/file
,然后尝试存储,检查是否包含所述文件。
--assume-unchanged
--no-assume-unchanged
指定这些标志时,不会更新为路径记录的对象名称。
相反,这些选项设置和取消设置路径的“假设不变”位。当“假设不变”位打开时,git 停止检查工作树文件是否有可能的修改,因此您需要手动取消设置该位以告诉 git 当您更改工作树文件时。这在处理系统调用非常慢的文件系统(例如)
上的大型项目时有时会很有帮助。lstat(2)
cifs
此选项也可以用作粗略的文件级机制,以忽略跟踪文件中未提交的更改(类似于
.gitignore
未跟踪文件所做的更改)
于 2010-06-26T14:47:58.013 回答