毫不含糊地检出分支并从脚本中获取git的最新版本

我正在创建一个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这么多年后,我仍然对掌握必知的技能一无所知。

iCMS 回答:毫不含糊地检出分支并从脚本中获取git的最新版本

如果要丢弃所有内容并获取远程版本:

git fetch $REMOTE
git stash
git checkout $BRANCHNAME
git branch -u $REMOTE/$BRANCHNAME
git reset --hard $REMOTE/$BRANCHNAME

如果要合并本地分支中远程分支的更新:

git fetch $REMOTE
git stash
git checkout $BRANCHNAME
git branch -u $REMOTE/$BRANCHNAME
git merge $REMOTE/$BRANCHNAME
本文链接:https://www.f2er.com/1756537.html

大家都在问