我经常发现自己只想检出一棵树中的某些文件,但由于我在本地修改了它们而不能这样做,并且不希望尝试找出合并的麻烦(我不希望合并任何东西,我只希望某些文件的git版本文件)。
因此,如何强制检出这些文件分散在目录结构上的“ db-backup *”?
例如
git-parent
- dir1
- db-backup1
- dir2
- db-backupA
谢谢,
r。
放弃所做的更改,则可以使用
git checkout -f <paths>...
保存更改,然后进行检出:
git stash
git checkout <paths>...
要恢复更改,请使用git stash pop
(或git stash apply
)。
查看文件的Git版本(并可能将其保存在临时文件中或使用其他名称),则可以使用git show
:
git show <file>
检出某个目录或文件子集在其他位置,则可以按照git-archive主页“示例”部分中的说明使用git archive
:
git archive --format=tar --prefix=subdir/ HEAD:subdir |
(cd /var/tmp/ && tar xf -)
请注意,它将使用HEAD(最后一次提交)中的版本,而不是索引中的版本,尽管通常不会有任何区别。另一种实现方法是使用
--temp
的git checkout-index
选项,尽管这可以认为是黑客。
HTH
git checkout <filename>
对我来说很好,即使对该文件进行了修改。作为错误,您究竟得到了什么?您正在尝试运行什么命令?这可能应该起作用:find . -name 'db-backup*' | xargs git checkout --
git restore
而不是git restore
命令。与confusing git checkout
结合,将使用HEAD内容还原工作树(即:unstage)
git checkout