3

我已经编程了一段时间,并且已经构建了一个现在托管在专用服务器上的小应用程序。

现在我一直在推出我的应用程序的不同版本,但对如何正确管理流程没有真正的了解。

在使用像 git hub 这样的产品时,这是管理应用程序构建的正确方法吗?

  1. 将我的整个应用程序上传到 github。
  2. 每次我处理它时,下载它并将其安装在我的开发服务器上。
  3. 当我完成它的工作并且看起来没问题时,然后我是否将更改的文件与我正在处理的当前项目一起上传,或者我是要更新整个批次还是要创建项目的新版本?
  4. 一旦我的所有更改都更新了,是否可以将这些从 git hub 推送到生产机器或生成新更改文件的列表,以便我可以使用某种清单轻松更新生产机器?

我的应用程序有大约 900 个与之关联的文件,并存储在各种文件夹结构中,并且是一个基于服务器的应用程序(准确地说是冷融合),由于我大部分时间都是独自工作,我很难理解如何管理应用程序的开发...

我也不知道如何使用命令行,我的台式机是 Mac,VM 运行我所需的所有服务器应用程序(Windows Server 2012、MSSQL 2012 等)

我真的很想确保我可以保持我的开发流程井井有条,但是当我使用 mac 时,我一直在努力理解如何管理服务器端应用程序开发.

4

1 回答 1

7

你让它听起来比它更复杂。

将我的整个应用程序上传到 github。

嗯,这实际上是 2 个步骤:首先,创建一个本地 git repo ( git init),然后将你的 repo 推送到 github。

每次我处理它时,下载它并将其安装在我的开发服务器上。

好吧,您只需要将它“下载”一次到新的开发盒。之后,只是git pull(或git fetch取决于工作流程),确保服务器上的任何更改都被拉下。只发送增量。

Git 是一个分布式版本控制系统。这意味着每个 git repo 都有整个项目的完整历史。所以只需要发送增量。(当多人对一个项目进行黑客攻击时,这真的很有帮助)。

当我完成它的工作并且看起来没问题时,然后我是否将更改的文件与我正在处理的当前项目一起上传,或者我是要更新整个批次还是要创建项目的新版本?

嗯,你在这里使用模糊的术语。完成编辑后,首先在本地提交 ( git add ...; git commit),然后将更改推送到 github ( git push)。仅发送增量。如果你眯着眼睛,每次提交都是“一个新版本”。

稍后,如果您想从“软件发布”的角度考虑(即在多次提交后发布“1.1 版”),您可以使用 git 标签。但不要马上担心。

一旦我的所有更改都更新了,是否可以将这些从 git hub 推送到生产机器或

生成新更改文件的列表,以便我可以使用某种清单轻松更新生产机器?

永远不要手动在服务器上手动处理文件。只应允许服务器运行您的软件的有效签出版本。如果您的生产服务器正在运行随机代码,那么没有人能够重现问题,因为它们不在版本控制系统中。

部署的超级简单方法是git clone在您的服务器上执行一次(一次),然后git pull更新代码。因此,您将更改推送到 github,然后从您的服务器中提取更改。

更高级的是,您将需要像capistrano这样的东西来为您管理结帐,并将“结帐”与“部署”分开以允许更轻松的回滚等。也可能有特定于 Windows 的方法来执行此操作。(对不起,我是 Linux 人。)

于 2013-09-24T03:43:14.297 回答