git - 克隆 repo 的完整路径

标签 git

git repos 的路径不仅仅包含 repo 名称。我想知道是否有一种方法可以自动让 git 克隆存储库并包含完整路径,这将帮助我对项目进行分类。

例如,我希望 git clone git@github.com:scrooloose/nerdcommenter.git 克隆到 ./scrooloose/nerdcommenter/ 而不仅仅是 ./nerdcommenter/.

git clone 中是否有用于此的标记,还是我必须手动执行此操作?

最佳答案

假设你有 git@github.com:scrooloose/nerdcommenter.git repo 引用,你可以简单地做:

$ mkdir -p scrooloose/nerdcommenter
$ git clone git@github.com:scrooloose/nerdcommenter.git scrooloose/nerdcommenter

如果确实需要,可以很容易地编写脚本。

在 git 中拥有这样的逻辑并没有多大好处,因为您可以链接其他工具,例如 awk 来获得您需要的东西。执行此操作的示例 shell 脚本,例如 clone.sh:

#/bin/bash

set -e

DST=`echo $1 | awk 'i=index($0,":") {print substr($0,i+1,length($0)-i-4)}'`
mkdir -p "${DST}" && git clone $1 "${DST}" 

然后(在明显的 chmod 之后):

./clone.sh git@github.com:scrooloose/nerdcommenter.git

你很好。

关于git - 克隆 repo 的完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45555303/

相关文章:

git - 撤消 GIT Stage 并恢复本地更改

git - 如何在两个 git 存储库之间 rebase

git - 推送到位于 RDP 客户端上的 git 存储库

Windows 中的 Git 克隆比在 Linux 中慢得多

git - 即使其他人不使用 git 更新网站,我也可以使用 git 管理网站吗?

git - 从 git 空白检查中排除 Jest 快照

VSCode 上的 Git 和 Git : samba shared folder issue

git - 我可以在提交的 PR 中压缩 _other peoples_ git commits 吗?

git如何为所有项目设置一个钩子(Hook)

git - Github for Windows 崩溃后如何恢复存储库?