You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让bash脚本拉取Git当前所在分支的更新?

问题解决:脚本中git pull无法拉取当前分支更新

问题根源

你脚本里的git pull https://tech-dev:password@bitbucket.org/mycompany/pow-wow.git没有指定目标分支,Git默认会拉取远程仓库的HEAD分支(通常是master),然后尝试合并到当前本地分支。但你当前在spring3upgrade分支,远程master和本地spring3upgrade没有关联,所以即便远程spring3upgrade有更新,脚本也检测不到。而手动执行git pull时,Git会自动拉取当前分支关联的远程跟踪分支,所以能正常更新。

修复方案

方法一:明确指定当前分支拉取

先获取当前分支名称,再拉取对应远程分支,修改后的deploy.sh如下:

echo | git branch
echo "git pull ..."
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
git pull https://tech-dev:password@bitbucket.org/mycompany/pow-wow.git $CURRENT_BRANCH

方法二:利用分支跟踪关系(更简洁)

如果本地分支已经和对应远程分支建立了跟踪关系(比如通过git checkout -b spring3upgrade origin/spring3upgrade创建的分支),直接执行不带URL的git pull即可:

echo | git branch
echo "git pull ..."
git pull

如果还没建立跟踪关系,先执行git branch --set-upstream-to=origin/spring3upgrade spring3upgrade关联一下就行。

验证

修改后重新执行脚本,就能正确拉取当前所在分支的远程更新了。

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:22:50