我正在创建一个shell构建脚本。
我希望这样称呼它:
./build.sh REPONAME BRANCHNAME
$REPONAME
对应于一个遥控器。我假设遥控器存在。
$BRANCHNAME
是$REPONAME
上存在的分支。
$BRANCHNAME
可能从未在此计算机上检出。
所以我有这个:
cd $REPOPATH
git fetch $REPONAME $BRANCHNAME
git checkout --track $REMOTE/$BRANCHNAME
git pull $REPONAME
echo `git rev-parse HEAD`
这种作品,但是我遇到了几个问题:
- 我必须两次输入密钥的私钥-我猜一次用于提取,一次用于拉出。不是很关键,但是如果只是一次,那就更好了。
- 由于
--track
,如果过去已经签出$BRANCHNAME
,我会得到
致命:名为$ BRANCHNAME的分支已经存在
。不知道这到底有多致命,但我不希望在输出中看到致命的
- 没有
--track
,我进入了我也不喜欢的分离模式 - 仅用
git checkout $BRANCHNAME
,我突然收到有关“模糊”分支的消息。也许是因为$BRANCHNAME
可能在多个遥控器上?
那么从远程签出分支,获取最新版本并从中进行构建的最干净,明确的方法是什么?f
使用git
这么多年后,我仍然对掌握必知的技能一无所知。