如何用Git命令将crm1仓库内容直接克隆到/crm目录(不含根目录)
直接克隆仓库文件到目标目录的单行Git命令
没问题,这有两种实用的单行命令方案,根据你的需求场景选择:
方案1:轻量导出(不保留版本库,推荐)
如果你只需要获取仓库当前最新的文件内容,不需要后续的Git版本控制操作,这个方案最简洁高效:
git archive --remote=<你的Git仓库地址> HEAD | tar -x -C /crm
命令细节说明:
git archive --remote=<仓库地址> HEAD:直接从远程仓库打包当前分支(HEAD)的所有文件,完全跳过仓库根目录crm1,也不带.git版本文件夹- 管道
|把打包的内容传给tar工具,-x代表解压操作,-C /crm指定解压到/crm目录,最终文件就直接落在/crm下了
方案2:保留版本库的完整克隆
如果需要在/crm目录保留Git版本库(方便后续拉取更新、提交修改),用这个命令:
git clone --no-checkout <你的Git仓库地址> /tmp/crm-tmp && cd /tmp/crm-tmp && git checkout HEAD -- . && mkdir -p /crm && mv * .git /crm/ && cd / && rm -rf /tmp/crm-tmp
逐段拆解逻辑:
git clone --no-checkout:克隆仓库但不自动检出文件,避免生成默认的crm1根目录cd /tmp/crm-tmp && git checkout HEAD -- .:进入临时克隆目录,手动检出所有文件到当前目录(直接跳过仓库根目录层级)mkdir -p /crm && mv * .git /crm/:确保/crm目录存在,把所有文件和.git版本文件夹一起移动到目标目录rm -rf /tmp/crm-tmp:清理临时目录,不留操作痕迹
小提示:如果是本地仓库,把<你的Git仓库地址>换成本地路径即可,比如file:///home/you/crm1或者直接写/home/you/crm1。
内容的提问来源于stack exchange,提问作者erezt
相关产品推荐
相关产品推荐

