我已经编程了一段时间,并且已经构建了一个小应用程序,现在托管在专用服务器上。
现在我已经推出了不同版本的应用,但没有真正了解如何正确管理流程。
这是使用git hub等产品时管理应用程序构建的正确方法吗?
我的应用程序有大约900个与之关联的文件,并存储在各种文件夹结构中,并且是基于服务器的应用程序(准确地说是coldfusion),因为我大部分时间都在工作,我很难理解如何管理开发一个应用程序...
我也不知道使用命令行,我的台式机是mac,运行所有必需的服务器应用程序的VM(Windows Server 2012,MSSQL 2012等)
我真的想确保我可以按顺序保持我的开发过程,但是我很难理解如何理解如何管理服务器端应用程序开发当我使用mac我的开发机器是一台Windows机器我觉得我卡住了在中间。
答案 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家伙。)