github和编码过程

时间:2013-09-24 03:22:53

标签: github coldfusion

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

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

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

  1. 将我的整个申请上传到github。
  2. 每次我处理它,下载并安装在我的开发服务器上。
  3. 当我完成它并且看起来没问题时,我是否上传了我正在处理的当前项目的更改文件,或者我是要更新整个批次还是我的意思是创建一个新版本的该项目?
  4. 一旦我的所有更改都更新了,无论如何将这些更改从git hub推送到生产机器或生成新更改文件的列表,这样我就可以使用某种清单轻松更新生产机器了吗?
  5. 我的应用程序有大约900个与之关联的文件,并存储在各种文件夹结构中,并且是基于服务器的应用程序(准确地说是coldfusion),因为我大部分时间都在工作,我很难理解如何管理开发一个应用程序...

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

    我真的想确保我可以按顺序保持我的开发过程,但是我很难理解如何理解如何管理服务器端应用程序开发当我使用mac我的开发机器是一台Windows机器我觉得我卡住了在中间。

1 个答案:

答案 0 :(得分:7)

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

  

将我的整个申请上传到github。

嗯,这实际上是两个步骤:首先,创建一个本地git仓库(git init),然后将你的仓库推送到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家伙。)