我是Git的新手,正在尝试将我的网站从SVN迁移到GIT以进行版本控制和部署。
我有许多开发人员将在他们的本地机器上工作,我有3个服务器,‘开发’,‘登台’和‘生产’。
我一直在读Git的书籍和视频,所以我想我现在对Git的添加、提交等非常熟悉,但是我需要关于工作流程和部署的建议。
我需要知道的第一件事是在哪里初始化GIT存储库。它是否需要在“生产”服务器上,然后我在“暂存”和“开发”上克隆它,然后每个开发人员也将其克隆到自己的本地计算机上?
其次,每个服务器都应该有自己的分支吗?也就是说,“开发”将有一个“开发”分支,“阶段”将有一个“阶段”分支,而“生产”将有一个“生产”分支?
谢谢
发布于 2012-10-31 22:51:32
我最近将我的团队从SVN转移到Git,我们有相同的3台服务器,prod,stg和dev。
用于迁移过程的,首先是sudo apt-get install git-svn,然后..
$ git svn clone [subversion_repository_url] /path/to/git/repository
$ cd /path/to/git/repository
$ git remote add origin [gir_repo_url]
$ git push origin master工作流的,
名为“Git分支模型成功的”的This link非常有用。它涉及到如何为团队使用“生产-阶段-开发”类型的工作流程。
与部署相关的
在每台服务器上,我们要做的是,每台服务器在文件系统的某个位置都有git存储库。要进行部署,我将需要部署的各个分支存档并解压缩到/srv/www/文件夹中。
例如,Prod上的,要部署主分支,
sudo git archive --format zip --output output.zip master -0^ 'master‘表示您想要拉链的分支。这将排除.git文件夹。然后在/srv/www/文件夹中解压sudo unzip output.zip -d /srv/www/app/ This is the equivalent of an svn export command.
对于临时服务器,我们通常会签出其中一个发布分支或开发分支。。
,并且对于开发服务器,我们检查我们需要执行测试的任何功能分支。
发布于 2012-10-31 22:56:35
这里有3个问题:如何部署,如何构建分支,以及如何构建/托管存储库。
如何构建分支?
你可以从简单的开始。您已经有了一个SVN存储库,所以如果您有一个主干和分支,那么可以在git中以相同的方式设置它们。如果这对你不起作用,那么只在你发现需要的时候改变它。
如果你想要更高级的东西,看看git flow。另一个很好的工作流程是one that github uses。它被设计成比git flow更简单。
如何托管存储库?
一种简单的方法是像对SVN所做的那样。在中央服务器上有一个中央存储库。每个人都在中央服务器之间进行推送和拉动。另一种选择是给某种类型的首席开发人员提供“官方”存储库,当他们满足首席开发人员的批准时,该领导将从贡献开发人员那里提取其他更改。有许多方法可以做到这一点。你只需要决定什么是最适合你的。
如何部署?
同样,这也不需要在SVN工作流程中进行更改。您可能会从每个机器中执行一个svn update。我只需对每个盒子执行一次git pull,并保持其他所有内容不变。
发布于 2012-10-31 22:56:18
这在很大程度上取决于最终什么对你来说是正确的。
another answer here中链接的分支模型是一个很好的起点。
通常,您会有一个master分支来表示已发布的代码。
登台取决于您想要登台的内容-我们的团队有一个单独的分支,名为staging,由持续集成服务器的登台构建使用。可以将不同的功能合并到此分支中,以便在试运行时对其进行测试。
部署将取决于您是使用CI还是直接从存储库中的分支进行部署。
https://stackoverflow.com/questions/13160335
复制相似问题