我对为什么我的生产服务器似乎认为它在我的主分支之前感到困惑。我使用fabric 进行部署,它从我在github 上的master 分支在服务器上运行一个git pull。我没有对生产服务器本身进行任何我知道的更改,当然我也不会在生产服务器上进行提交。
git status
产量:
# On branch master
# Your branch is ahead of 'github/master' by 57 commits.
#
nothing to commit (working directory clean)
据我所知,生产服务器上的内容与我的开发环境中的主分支相匹配。至少该网站的行为相同,但我觉得这令人不安。关于如何在与 github master 相同的页面上获取生产存储库并停止给我此消息的任何想法?
编辑(2013 年 4 月 11 日):
澄清一下,当我使用结构进行部署时,它会运行:
git pull github master
在服务器上。
我在原始问题中上面写的 git status 结果在服务器上。我从不在服务器上提交,只在我的开发环境中提交,我将其推送到 github,然后将其拉到服务器。这就是为什么我很困惑。我当然不想将任何东西从我的生产服务器推送到 github,这与我的工作流程相反。
第二次编辑(2013 年 4 月 11 日):
这是fabfile git代码:
def prepare_remote_deployment_area():
"""Prepare the production host with updated resources"""
with cd(DEPLOYMENT_ROOT):
run('git pull github master')
这是从部署中调用的:
def deploy():
"""Deploy an update (committed to GitHub) to production"""
check_git_status()
check_git_status(on_remote=True)
prepare_remote_deployment_area()
restart_uwsgi()
restart_nginx()
restart_celery()
同样,这一切似乎都有效,因为我在开发环境中所做的更改会出现在生产环境中。我只是不明白为什么生产存储库认为它远远领先于 github master。