我想存储一个文件。由于git stash
不允许将文件名作为参数,因此我必须使用git stash -p
并在其余更改中选择该文件。
如果没有为commit提交的更改不包含很多文件,或者我想要存储的文件是第一个文件之一,那么这可以正常工作。
但是,如果有很多文件,而我要隐藏的文件是列表的末尾,我必须经历所有其他文件,直到找到所需的文件。这有点乏味。
所以我想知道:有没有办法在执行git stash -p
时定义不提交提交文件的顺序?
答案 0 :(得分:1)
你可以这样做:
git add file
git stash -k -u
git stash
git stash pop stash@\{1\}
git checkout file
这完全是一个黑客攻击,只有在你做这个之前你还没有上演的变化时它才会起作用,但据我所知,没有什么好方法可以做你需要的。
首先,我们将file
添加到索引中,然后我们隐藏其他所有内容(-k
以保留file
在索引中,-u
也会收集未跟踪的文件),然后藏匿file
。最后两个命令是清理:我们应用第一个存储来检索所有内容,然后checkout
file
删除其更改(如stash
所做)。最后,您应该让stash
只对其中的file
进行更改,并且您的目录保持不变,但file
除了返回HEAD版本。