1

我对为什么我的生产服务器似乎认为它在我的主分支之前感到困惑。我使用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。

4

1 回答 1

0

也许git pull

git pull origin master

更多信息

NAME
       git-pull - Fetch from and merge with another repository or a local
       branch

DESCRIPTION
       Incorporates changes from a remote repository into the current
       branch. In its default mode, git pull is shorthand for git fetch
       followed by git merge FETCH_HEAD.
于 2013-04-11T04:58:25.187 回答