创建一个脚本以从特定分支进行 git 拉取/签出



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

我创建了一个新的develop分支,在服务器上的第一个克隆之后,git branch -a的情况是这样的:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master

我正在尝试编写一个简单的脚本,该脚本将从生产服务器上的 master 和开发服务器上的 development 中提取。

克隆后我做了

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 和本地/远程分支的了解还不够,我错过了一些东西。

尝试另一种方式:

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分支而不对其进行更新。

最新更新