我试着用一个git bash脚本做以下事情:
1.克隆git repo
1.进入已克隆存储库的子文件夹
1.切换到另一个分支(env/dev)
1.为了更好的衡量标准,
1.返回到上一个文件夹
我打算叫它./clone.sh https://myserver.com/foo/blabla.git
我目前有:git clone $1 && basename $1 .git|xargs cd && git checkout env/svil && git pull && cd ..
个
但是在repo被克隆后,这会给出一个错误:xargs: cd: No such file or directory
。我在哪里出错了,我该如何解决这个问题?
请注意,我没有一个完整的bash在我的处置,只有git bash
谢谢
1条答案
按热度按时间2w3kk1z51#
cd
是一个内置的shell;这不是-也不可能是-一个你可以在磁盘上找到的可执行文件。因此,您不能使用
xargs
、find
、exec
等命令调用cd
。即使您可以使用磁盘上的任何命令调用cd
,当cd
命令退出时,您的目录更改也会立即取消,这将违背其目的。你应该这样写:
字符串
注意:默认情况下,你应该使用双引号来扩展参数(
$1
或$foo
);我已经为你做了