Git 别名,用于从 github 和 bitbucket.org 进行更简单的结帐

Git alias for simpler checkout from github and bitbucket.org

我最近检查了很多存储库,我想为我常用的站点创建一个别名,以便更轻松地进行初始检查。我想要这样的东西:

git clonegithub opencv/opencv
git clonebitbucket 

我从以下别名开始,但它们最终克隆到了我的主目录:

[alias]
clonegithub = "!git clone git@github.com:.git"
clonebitbucket = "!git clone git@bitbucket.org:.git"
clonemyorg = "!cd \"${GIT_PREFIX:-.}\" && git clone git@bitbucket.org:MyOrg/.git #"

所以结果是 git 别名命令通常在当前 repo 的根目录中 运行。由于 .gitconfig 在 ~ 中并且 "git clone" 命令是 repo-less 这试图 运行 git 克隆在 ~.

要解决此问题,请使用 GIT_PREFIX 找到命令所在的目录 运行,然后 cd 到那里。这是我最终得到的别名:

[alias]
clonebb = "!cd \"${GIT_PREFIX:-.}\" && git clone git@bitbucket.org:/.git #"
clonegh = "!cd \"${GIT_PREFIX:-.}\" && git clone git@github.com:/.git #"
git config --global url.git@github.com:.insteadOf gh:
git config --global url.git@bitbucket.org:.insteadOf bb:

现在运行

git clone gh:sqlobject/sqlobject.git

https://git-scm.com/docs/git-config#Documentation/git-config.txt-urlltbasegtinsteadOf