我想使用类似的东西:
git checkout -- <path>/<file>
Run Code Online (Sandbox Code Playgroud)
但我想将文件签出到我选择的某个文件夹,而不是覆盖本地/.
任何的想法?
Adr*_*eil 204
另一个更清洁的解决方案 - 只需指定一个不同的工作树.
要检查从HEAD(而不是索引)到特定输出目录的所有内容:
git --work-tree=/path/to/outputdir checkout HEAD -- .
Run Code Online (Sandbox Code Playgroud)
要将HEAD中的子目录或文件签出到特定目录:
git --work-tree=/path/to/outputdir checkout HEAD -- subdirname
Run Code Online (Sandbox Code Playgroud)
has*_*sen 51
根据Do"git export"(如"svn export")?
你可以使用git checkout-index
它,这是一个低级命令,如果你想导出所有东西,你可以使用-a
,
git checkout-index -a -f --prefix=/destination/path/
Run Code Online (Sandbox Code Playgroud)
引用手册页:
最后的"/"[在前缀上]很重要.导出的名称实际上只是以指定的字符串为前缀.
如果要导出某个目录,则涉及一些技巧.该命令只接受文件,而不是目录.要将其应用于目录,请使用"find"命令并将输出传递给git.
find dirname -print0 | git checkout-index --prefix=/path-to/dest/ -f -z --stdin
Run Code Online (Sandbox Code Playgroud)
同样来自手册页:
直觉不是这里的目标.重复性是.
Tob*_*obu 24
对于单个文件:
git show HEAD:abspath/to/file > file.copy
Run Code Online (Sandbox Code Playgroud)
pro*_*ski 19
上述解决方案对我不起作用,因为我需要查看树的特定标记版本.cvs export
顺便说一下,这就是要用的方式. git checkout-index
不接受tag参数,因为它从index中检出文件. git checkout <tag>
无论工作树如何都会改变索引,所以我需要重置原始树.对我有用的解决方案是克隆存储库.共享克隆速度非常快,不会占用太多空间..git
如果需要,可以删除该目录.
git clone --shared --no-checkout <repository> <destination>
cd <destination>
git checkout <tag>
rm -rf .git
Run Code Online (Sandbox Code Playgroud)
较新版本的git应支持git clone --branch <tag>
自动检出指定的标记:
git clone --shared --branch <tag> <repository> <destination>
rm -rf <destination>/.git
Run Code Online (Sandbox Code Playgroud)
its*_*lay 15
如果您在您的功能下工作并且不想结帐回主人,则可以运行:
cd ./myrepo
git worktree add ../myrepo_master master
git worktree remove ../myrepo_master
Run Code Online (Sandbox Code Playgroud)
它将创建../myrepo_master
具有master
分支提交的目录,您可以在其中继续工作
Adrian的回答是“致命的:此操作必须在工作树中运行”。以下是对我们有用的。
git worktree add <new-dir> --no-checkout --detach
cd <new-dir>
git checkout <some-ref> -- <existing-dir>
Run Code Online (Sandbox Code Playgroud)
笔记:
--no-checkout
不要将任何内容签出到新的工作树中。--detach
不要为新的工作树创建新的分支。<some-ref>
例如,可与任何ref一起使用HEAD~1
。git worktree prune
。 归档时间: |
|
查看次数: |
127642 次 |
最近记录: |