如何在gitlab中添加gitconfig克隆功能以获取项目和wiki?

如何在gitlab中添加gitconfig克隆功能以获取项目和wiki?,git,gitlab,git-config,Git,Gitlab,Git Config,我有需要在XXX项目中更新的文档,克隆时,我还需要克隆wiki,以便更新文档 因此,我试图添加一个克隆别名来克隆XXX和XXX.wiki项目,但这并没有产生积极的结果。有谁有更好的建议来解决我的问题吗 我把它包括进来是为了展示我的众多试验之一,但它绝不反映我尝试的广度 [别名] cl=!sh-c'git克隆git@git.gitlab.com/$1$(基本名称$1)'- 使用别名很难做到这一点,因为Git会使用您提供给别名的参数做一些奇怪的事情,我无法理解这一点 但是,也可以通过创建具有正确名称

我有需要在XXX项目中更新的文档,克隆时,我还需要克隆wiki,以便更新文档

因此,我试图添加一个克隆别名来克隆XXX和XXX.wiki项目,但这并没有产生积极的结果。有谁有更好的建议来解决我的问题吗

我把它包括进来是为了展示我的众多试验之一,但它绝不反映我尝试的广度

[别名]
cl=!sh-c'git克隆git@git.gitlab.com/$1$(基本名称$1)'-

使用别名很难做到这一点,因为Git会使用您提供给别名的参数做一些奇怪的事情,我无法理解这一点

但是,也可以通过创建具有正确名称的脚本来定义命令
gitcl
将调用
gitcl
,如果它在您的路径上找到它,那么在bash脚本中解决问题就容易多了

因此,将名为
git cl
的文件添加到您的路径中,例如,在
~/bin
中:

#/bin/bash
git克隆git@git.gitlab.com/$1
git克隆git@git.gitlab.com/$1.5
运行
chmod+x~/bin/git cl

然后这应该会起作用:
gitclxxx
会将XXX和XXX.wiki都克隆到您当前的文件夹中。如果我没有完全正确地执行命令,请调整在git cl中运行的确切命令,以满足您的需要

但我不确定该如何构造它

您可以执行一个函数,它是由
git alias
code专门处理的

[alias]
    cl = "!f() { git clone this/\"$1\"; git clone that/\"$1\"; } f"
您可以创建一个名为
git cl
的文件,其内容如下:

#!/bin/sh
git clone this/"$1"
git clone that/"$2"

并添加此文件的可执行权限并将其添加到
路径
。git会在键入
git cl

时自动拾取它,因为repo的Wiki位于它自己的git repo中,独立于主要的git repo,我很确定您需要分离克隆命令来克隆它们。@joanis是的,我有,但我不确定如何构造它。它在别名中不起作用。sed或awk中的解析似乎被git读取gitconfig的方式打断了。关于如何为wiki构建URL,以及第二个问题,在克隆时维护用户凭据,有什么想法吗?因为它似乎会删除凭据,而且我看不到有什么方法可以让git在尝试以这种方式克隆时在我的用户的.ssh中查找密钥。是的,我只是在玩这个,而且
sh-c
对我的参数做了一些奇怪的事情。我真的不明白发生了什么。也许可以用bash脚本来代替?那一个更容易写…到目前为止,我有一个丑陋的东西:
cl=!sh-c“是的;git克隆git@git.gitlab.com/$1; git克隆git@git.gitlab.com/150万美元;true
,但仅发生第一次克隆。其中奇怪的
true
调用只是为了避免给
git clone
命令提供虚假参数。难看,而且根本不起作用@乔伊斯明白我的意思吗!?必须使用sed对脚本进行一些修改,因为$1是.git,。任何项目的wiki都是.wiki.git,因此$1不起作用,但现在似乎起作用了。