1

我正在尝试创建一个为我运行多个命令的别名。具体来说,该命令应该在多个目录中创建多个 git 分支(如果您知道其他方法可以做到这一点,那就太好了。)这是我正在做的事情:

alias branches="folder1; git checkout -b $1 ; folder2 ; git checkout -b $1; folder3; git checkout -b $1; folder4; git checkout -b $1"

请注意,folder(n) 表示一个 git repo(一个单独的项目),它本身就是我以前使用过的一个简单的 cd 别名,所以没有问题。

我得到的错误:

bash: syntax error near unexpected token `;'

我这样做是因为当我处理影响多个项目的 featureA 时,比如重构,我想确保我总是在 featureA 分支中。

谢谢。

编辑:我想使用 sh 别名。编辑标题以反映这一事实。

4

2 回答 2

2

看起来您不想要别名,而是想要一个 shell 函数:

function branches {
    cd folder1
    git checkout -b $1
    cd folder2
    git checkout -b $1
    cd folder3
    git checkout -b $1
    cd folder4
    git checkout -b $1
}

或者,更好的是,循环执行:

function branches {
    for folder in folder1 folder2 folder3 folder4 ; do
        cd $folder
        git checkout -b $1
    done
}
于 2012-04-11T13:31:51.793 回答
1

那是 git 别名还是 sh 别名?

如果它是 git 别名,则需要!在代码的开头添加 a(以便您的 shell 可以运行它)。

但是从我读过的内容来看,你想要的不是 git 别名而是一个 shell 函数,它将进入每个文件夹并检查所述分支(顺便说一句,这根本不是一个好主意)。

于 2012-04-11T12:53:40.640 回答