如何仅固定某些文件?
我隐藏了我的改变。 现在我只想从存储中取出一些文件。 我怎样才能做到这一点?
如下所述,并且在“如何从git存储中提取单个文件(或更改为文件)?”中详细介绍,您可以应用使用git checkout
或git show
来恢复特定文件。
git checkout stash@{0} -- <filename>
(正如Jaime M.所述,对于像tcsh这样的需要转义特殊字符的shell,语法是: git checkout 'stash@{0}' -- <filename>
)
或者将它保存在另一个文件名下:
git show stash@{0}:<full filename> > <newfile>
(请注意,这里<full filename>
是文件相对于项目顶部目录的完整路径名(想想:相对于stash@{0}
))。
yucer在评论中建议:
如果您想手动选择要从该文件应用哪些更改:
git difftool stash@{0}..HEAD -- <filename>
Vivek在评论中补充道:
看起来像“ git checkout stash@{0} -- <filename>
”在执行存储时恢复文件的版本 - 它不适用(仅)该文件的存储更改。
做后者:
git diff stash@{0}^1 stash@{0} -- <filename> | git apply
(如peterflynn所述,在某些情况下,您可能需要| git apply -p1
,从传统diff路径中删除一个( p1
)主斜杠)
正如评论:“unsash”( git stash pop
),然后:
git add
) git stash --keep-index
其余部分: git stash --keep-index
最后一点是允许你保留一些文件,同时存储其他文件。
它在“如何从多个已更改的文件中仅存储一个文件”中进行了说明。
git checkout stash@{N} <File(s)/Folder(s) path>
例如。 要仅从最后一次存储中恢复./test.c文件和./include文件夹,
git checkout stash@{0} ./test.c ./include
我认为VonC的答案可能是你想要的,但是这里有一种方法来做一个选择性的“git apply”:
git show stash@{0}:MyFile.txt > MyFile.txt
链接地址: http://www.djcxy.com/p/24499.html