5

是否有可能,没有弹出整个存储并在没有这个特定文件的情况下保存另一个?

4

2 回答 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

,然后尝试存储,检查是否包含所述文件。

git update-index手册页

--assume-unchanged
--no-assume-unchanged

指定这些标志时,不会更新为路径记录的对象名称。
相反,这些选项设置和取消设置路径的“假设不变”位。

当“假设不变”位打开时,git 停止检查工作树文件是否有可能的修改,因此您需要手动取消设置该位以告诉 git 当您更改工作树文件时。这在处理系统调用非常慢的文件系统(例如)
上的大型项目时有时会很有帮助。lstat(2)cifs

此选项也可以用作粗略的文件级机制,以忽略跟踪文件中未提交的更改(类似于.gitignore未跟踪文件所做的更改)

于 2010-06-26T14:47:58.013 回答