我试图编写一个脚本来轻松地从git部署我们的webapp。我们现在有两台服务器("生产"和#34;开发")。
我已经建立了一个新的develop
分支,在服务器上的第一个克隆之后,git branch -a
的情况就是这样:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
我正在尝试编写一个简单的脚本,该脚本将从生产服务器上的master和开发服务器上的develop中提取。
克隆后我做了
git pull origin develop
git checkout develop
现在情况是这样的:
* develop
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
文件与开发分支匹配。到目前为止一切都很好。
我试图和主人做同样的事情:
git pull origin master
git checkout master
我收到了这条消息:
Your branch is ahead of 'origin/master' by 5 commits.
(use "git push" to publish your local commits)
并且文件似乎与开发相同。
我想我对git和本地/远程分支的嘲讽是不够的,我错过了什么。
答案 0 :(得分:1)
尝试相反的方式:
git checkout <branch>
git pull origin <branch>
调用git pull origin master
将执行以下两个操作:
master
的更改
(您可以通过运行git fetch origin master
)origin/master
合并
(您可以通过运行git merge origin/master
)因此,如果您的有效分支是develop
,则运行git pull origin master
会移动您的本地develop
分支。
然后,运行git checkout master
会检出您的本地master
分支而不进行更新。