我有一个bash脚本,它可以拉取和构建一些源代码。如果我在master
分支上,它会按预期工作,但是如果我更改到另一个分支,它会说它已经是最新的,即使有推送的更改。如果我在脚本外部从cmd行执行git pull
,它会按预期拉取。
部署.sh
echo | git branch
echo "git pull ..."
git pull https://tech-dev:password@bitbucket.org/mycompany/pow-wow.git
产出
./deploy.sh
master
* spring3upgrade
git pull ...
From https://bitbucket.org/mycompany/pow-wow
* branch HEAD -> FETCH_HEAD
Already up-to-date.
问题
在bash脚本中,如何将它从我当前所在的分支转到pull
?
1条答案
按热度按时间zte4gxcn1#
如果使用显式URL进行拉取(如问题中所示):
HEAD
(默认分支git pull
将合并到默认分支指向的任何分支(即:它将尝试合并origin/master
,而不是origin/spring3upgrade
)最简单的方法是定义一个命名的远程(例如:
origin
),让git设置默认配置,并命名远程跟踪分支:如果您有特殊需要,不需要为遥控器命名:您可以在命令行中提供所需的refspec,例如:
您需要提供特定的凭据才能访问遥控器。有许多方法可以做到这一点:
CI
(您选择名称...)专用用户的公钥,并设置构建器代理以使用该密钥通过ssh访问存储库git help credentials
的链接),或者git help config
中的许多http.*
设置