shell (git)Bash:克隆并 checkout 特定的环境

6xfqseft  于 12个月前  发布在  Shell
关注(0)|答案(1)|浏览(112)

我试着用一个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
谢谢

2w3kk1z5

2w3kk1z51#

cd是一个内置的shell;这不是-也不可能是-一个你可以在磁盘上找到的可执行文件。
因此,您不能使用xargsfindexec等命令调用cd。即使您可以使用磁盘上的任何命令调用cd,当cd命令退出时,您的目录更改也会立即取消,这将违背其目的。
你应该这样写:

git clone "$1" \
&& cd "$(basename "$1" .git)" \
&& git checkout env/svil \
&& git pull \
&& cd ..

字符串
注意:默认情况下,你应该使用双引号来扩展参数($1$foo);我已经为你做了

相关问题