我正在尝试将以下 Git 别名添加为 Git bash 中的命令(这里是 Windows 用户)。
yolo = "!git init && git remote add origin $1 && git pull"
这些似乎都不起作用。前者会抛出错误,后者会转义双.gitconfig
引号yolo = \"!git init && git remote add origin $1 && git pull\"
$ git config --global alias.yolo "!git init && git remote add origin $1 && git pull"
$ git config --global alias.yolo '"!git init && git remote add origin $1 && git pull"'
更新:第一个命令显示的错误是
git config --global alias.yolo "git config --global alias.yolo '"!git init && git remote add origin $1 && git pull"' init && git remote add origin $1 && git pull"
usage: git remote add [<options>] <name> <url>
-f, --fetch fetch the remote branches
--tags import all tags and associated objects when fetching
or do not fetch any tag at all (--no-tags)
-t, --track <branch> branch(es) to track
-m, --master <branch>
master branch
--mirror[=<push|fetch>]
set up remote as a mirror to push to or fetch from
答案1
你的别名不是正在尝试做git clone
已经做的事情吗?
$1
在这里不会做任何有用的事情——Git 的别名扩展仅仅将用户给定的参数附加到配置的命令末尾;它并没有告诉 shell 应该将它们映射到 $@。
这里有两个选项:
定义一个函数并运行它:
yolo = "!fred() { git init && git remote add origin \"$1\" && git pull; }; fred"
这样 $1 就意味着功能参数并正常工作。
编写一个名为的脚本
git-yolo
:(不一定是 /bin/sh,可以是 bash 或 perl 或任何东西)
#!/bin/sh git init && git remote add origin "$1" && git pull
将脚本放在你
$PATH
配置的目录中的任何位置,例如/usr/local/bin/git-yolo
。这将使 Git 将其识别为git yolo
子命令。