从特定分支创建 git pull/checkout 的脚本

Create a script to git pull/checkout from specific branch

我正在尝试编写一个脚本来从 git 轻松部署我们的 Web 应用程序。我们现在有两个服务器("production" 和 "development")。

我创建了一个新的 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)

而且文件似乎与 develop 相同。

我想我对 git 和 local/remote 分支的了解还不够,我遗漏了一些东西。

换个方向试试:

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 分支而不更新它。