我决定是时候在一个我随便开发了十多年的 PHP 项目上开始使用 Git。(拜托,版本控制警察不要讲课!)由于我的 VPS 需要复杂的设置来完成项目所需的一切(尤其是单代码库多客户端结构和具有日语能力的 TeX 安装以创建专业 PDF ),无法在我的本地 Windows 机器上设置开发环境。但是我在服务器上确实有一个可以玩的测试台区域,所以它是我的开发区域。目前我使用 Filezilla 访问服务器并直接在 Notepad++ 中打开文件,当我准备好查看我的编辑时,我只需保存并让 Filezilla 上传。当测试台上一切正常时,我将文件复制到生产代码库区域。是的,除了我自己的评论之外,这没有给我任何更改的历史记录,而且我必须小心不要将错误修复与半成品的新功能混为一谈。我可以看到 Git 分支对于正在进行的不同升级的价值。
昨天我弄湿了脚趾头。首先,我创建了一个 Github 帐户,然后(在教程的推荐下)安装了 Git For Windows(带有自己的 Bash 和外观小巧的 GUI)和 Kdiff3,并按照一些说明配置 Git Bash。尽管如此,我最终不得不安装其他东西来与我的 Github 帐户(适当地命名为 Windows 版 Github)交互,这似乎完成了其他两个程序应该为我做的所有事情。无论如何,然后我做了一个简单的任务,作为我第一次涉足 Github 世界 - 我已经为其他人的 jQuery 插件添加了功能并想与开发人员共享它,所以我分叉了他的 repo,将它克隆到我的机器上,覆盖了文件我之前已经编辑和测试过,同步过到我的 Github 帐户,并发送了一个拉取请求。最后一句话中的所有术语对我来说都是全新的,所以我为自己能走到这一步感到非常自豪。;) 但我想我只需要 Github 软件,而不是 Git 软件——很难知道该相信哪些教程。
无论如何,现在我想为我自己的东西找出一个工作流程,这是我对你们的实际问题。据我所知,除了公共 Github 之外,在任何地方拥有主仓库都需要花钱,而且我不在乎其他人是否看到我的代码(我不希望其他人从事我由意大利面条代码组成的古怪项目,但如果他们想要,那太好了)。好的,但是然后呢?也许是其中一种情况,或者其他情况:
将 repo 的分支克隆到我的 PC,对本地文件进行编辑,然后将它们上传到 Filezilla 中进行测试(比我当前的工作流程多点击几次,因为 Filezilla 不会自动查看本地文件和远程文件之间的关系,但没什么大不了的)。然后,当我对代码感到满意时,在本地提交,同步到 Github,然后将文件(从某个地方 - 在这一点上不确定)复制到生产区域。
在我的 VPS 上安装 Linux 风格的 Git,以便“本地”Git 文件位置是测试平台,并通过 PuTTY 使用 Git 进行本地提交。文件结构更简单(根本不需要在我的电脑上复制)但使用 Git 更麻烦:
- 我不经常使用 PuTTY,由于某种原因,连接经常在我身上断开,我必须重新启动。
- 尽管 Linux 命令行是 Git 的原生栖息地,但我可能更喜欢 GUI(因为我很快忘记了命令语法——我猜是老脑子)。
此外,由于我从未最终使用我在这里安装的 Git 程序,我不确定我将在服务器上使用的是 Git 还是 Github。
其他一些情况,因为 #1 或 #2 都没有使用 Git/Github 来管理生产文件区域,这可能是一个好主意,这样我就不会忘记复制我需要的所有内容。
我试图研究基于 PHP 的 GUI 与想法 #2 一起使用的可能性(因此我不必使用 PuTTY 进行日常操作),但似乎这些工具的讨论都假设您正在尝试创建自己的 Github 服务,或者“本地”克隆的存储库物理上位于您的本地 PC 上(xAMP 在任何操作系统上运行)。但也许我使用的 Github 软件足以做到这一切——这很难说。我还不了解 Github 上的主公共存储库、某个地方的分支(也在 Github 上?)、我的 Web 服务器上的至少两组文件(测试平台和生产区域)、Github 软件、Git 软件之间的相互作用,和我坐的电脑的键盘/屏幕。
所以请原谅我的新手漫无边际,但如果有人有类似的开发情况,你的工作流程是什么?或者你会给我什么建议?