1

所以,我知道这已经被问死了,但是在我无数小时的搜索中,我还没有完全弄清楚这一点。

所以这是我的工作流程:

  • 生产(实时)环境仅根据需要更新补丁。
  • 开发环境(与生产环境在同一台服务器上,不同的 docroot)是当前正在处理的文件
  • 我当前从开发环境克隆的本地存储库,但我想使用 Phpstorm 在另一个克隆的存储库中管理生产

生产和开发是两个完全不同的部署,它们目前不能合并,因为太多不同会导致生产无法使用。我们正在对 Magento 进行一些大修,并试图将 Dev 和 Production 隔离到它们自己的分支中,因此在下一个版本发布之前,两者都不会相互关联。

我在 Github 集成方面遇到了重大问题。当我运行 git push origin dev 或 git push origin production 时,当我去 github 检查更改时,我看到所有 3 个分支中的消息都发生了变化,我根本不希望这种情况发生,即使它是文件夹,而不是文件本身被更改。在合并之前,一个应该与另一个无关。

这变得非常令人沮丧,因为我不希望任何一个分支甚至 TOUCH master,直到我准备好合并任何东西。我希望能够将开发分支拉到开发环境,将生产分支拉到生产环境,并将两个分支作为本地系统上的单独存储库,我可以单独编辑每个分支。任何意见是极大的赞赏。

4

3 回答 3

2

如果您使用 明确推送git push origin production,您的更改将仅显示在生产分支上。除非您当前的分支不是production,在这种情况下,我不完全确定会发生什么。

github 上的网络页面(例如:https ://github.com/magento/magento2/network )是查看分支如何以更直观的方式发散的好地方,另一种查看方式是使用gitk机器上的工具。

关于您的本地环境,您只需要克隆一次存储库并在分支中循环使用git checkout <branch_name>

于 2013-07-29T17:03:25.800 回答
1

并将两个分支作为单独的存储库

它们在一个 repo 中,但在不同的分支上,因此请查看您正在处理的 PHPSTORM 中的特定分支。如果你完成了,你只推这个分支。因此,如果您从事开发工作。如果您现在在开发上工作并在 5 分钟内进行直播,那么只需更改分支 - 这正是它们的用途。

在您的 PHPStorm 中,您在右侧按钮上有一个字段“git:”,只需单击那里,就会打开一个带有“本地分支”点的子菜单。在此,您可以在本地分支机构之间切换。

本文详细解释了 git 工作流程:http: //nvie.com/posts/a-successful-git-branching-model/

于 2013-07-27T05:06:38.897 回答
0

经过进一步研究,我发现分支混淆的原因是因为我在提交之前没有使用结帐,如果它是一个新的本地工作树,则必须首先拉取远程,然后我将修改的压缩包解压缩到 dev 顶部主分支拉,签出开发,然后提交和推送没有问题。

对于那些感兴趣的人,这里有一个很棒的 github 工作流程 pdf。 http://ftp.newartisans.com/pub/git.from.bottom.up.pdf

还要感谢 bish 的有用文章。

于 2013-07-30T21:06:55.923 回答