如何在具有开发和生产分支的服务器上配置 git?

How can I configure git on a server with a development and production branch?

我对 git 完全陌生。我是一个相当大的项目的唯一开发人员,并且想开始保留代码更改的历史记录。

我目前有一个 LAMP 堆栈,其中包含 Apache 中的许多虚拟主机。首先,我想专注于我的主站点,该站点具有开发和生产堆栈。目前,我有两个虚拟主机:

我专门在 dev.mydomain.com 虚拟主机中工作。我可以随时浏览到 dev.mydomain.com 以实时查看我的更改。当我对我的更改感到满意时,我 运行 一个 bash 脚本将我的更改推送到生产环境。

sudo rsync -avh --delete --stats --progress /var/www/dev.mydomain.com/ /var/www/mydomain.com/ --exclude-from '/usr/local/bin/exclude.txt'

我想用git来模仿这个想法。

  1. 我是否将 git 安装在 运行 连接站点的实际 Web 服务器上?
  2. 如何配置 git 以便在网站上工作时,我仍然可以在 dev.mydomain.com 上实时访问这些更改?

我已经阅读了大多数入门教程 git,并且我了解入门的基本命令,但重要的是我要保持相同的生产周期。有没有一种方法可以实现,或者有其他类似的方法吗?

您在每台计算机上安装 git 作为客户端。

git 您描述的大部分内容都取决于分支。

一个适合单独开发人员的示例工作流程是,您在 master 上进行开发,然后根据需要从 master 创建分支以反映当时的代码。如果您想按名称历史地跟踪它们,您可以将这些分支称为 prod_mmddyyyy。
你也可以让 'prod' 只是一个被更新的分支,例如通过从 prod 分支执行 git merge master
然后,您可以通过 git checkout branch_name 配置 'prod' 服务器使用该分支作为其代码 您可能还会发现
https://softwareengineering.stackexchange.com/q/111506/34069
有用。

你可以有两个分支(例如 master 和 develop)并使用 git 挂钩,这样当你推送到 master 时,服务器会自动将它发布到虚拟主机上。

我也认为 this 可以帮助你。