【发布时间】:2026-01-28 18:25:01
【问题描述】:
这似乎是一个愚蠢的问题,但我觉得我对 GIT 理解得相当好,但我似乎无法按照我的意愿设置我的开发环境。我要么错过了一些非常简单的东西,要么我做错了:)
我在我的服务器上初始化了一个裸 git repo,将它克隆到我的本地机器,提交我的文件并推送到源。然后,我在本地创建了三个分支(master、release、develop)并将它们全部发布到 origin。我打算让多个开发人员从开发分支中拉出,我想确保他们不能推送到主分支,但这对于不同的问题可能会更好。
现在,我在本地对文件进行更改,然后将它们上传到测试服务器并通过 Web 浏览器检查测试服务器。我不得不想象这是大多数人测试他们工作的方式,除非他们将计算机配置为 Web 服务器并安装了 php 和 mysql。一旦我对我的更改感到满意,我就会将它们推送到原始存储库,一切正常。
我的挑战在于保持测试服务器与我的本地机器同步。我已经尝试在我的远程测试目录中设置一个 repo,并且我已经向我的本地 git repo 添加了第二个远程,希望我可以推送到测试 repo 以将测试服务器上的文件与我的本地文件同步。但我不知道如何拥有两个遥控器并使它们与我的本地机器保持同步。
如果我创建一个新的本地分支,检查它以开始开发新功能,然后将分支推送到我的测试远程,测试远程的头仍然是 master 而不是我的新功能分支。因此,我在本地对功能分支进行更改,但是当我通过 coda 将更改发布到测试服务器时,我实际上是在更改测试存储库的主分支上的文件。如果我不能让我的测试快照与我的本地快照保持同步,我就不知道如何充分利用 gits 分支功能。
我在本地开发和测试真的那么重要吗?当您必须进行远程测试时,究竟如何使用 git 设置开发环境?有一个测试回购是完全错误的思考方式吗?必须有一种方法来拥有多个远程并让它们签出到推送的最新分支,以便您可以在测试服务器上远程同步本地文件的实例。请帮忙!
【问题讨论】:
-
尝试将您的测试运行添加到git post-commit,但请记住将其标记为可执行...让我知道这是否有帮助...
-
不要使用 Git 进行部署,也绝对不要推送到非裸仓库进行测试。您应该肯定在本地进行开发(是的,大多数 PHP 开发人员都有本地 PHP/Apache/MySQL 实例)。对于部署,使用 Capistrano 之类的工具,您的生活会变得更加轻松。
-
"但是对于不同的问题可能会更好" -> 对于这部分,您可能需要阅读How to avoid merging changes into the production branch
标签: git git-branch git-remote