逐步实施“成功的git分支模型”

时间:2013-07-25 08:51:49

标签: git git-flow

所以我开始实施this model

我是Git和软件实施过程的新手,所以我列出了我迄今为止所做的一切。如果你发现我不理解某些事情或朝着错误的方向前进,我需要你帮助解决一些我得到的问题以及一些建议。我相信这对于走上这条道路的其他人来说可能是一个很大的帮助。所以这就是我到目前为止所做的。我的网站有以下结构

/var/www/mysite.com/
                kohana
                    kohana files
                www
                    index.php
                    other files 

为了实施该模型,我已经完成了以下工作:

  1. 我初始化了存储库以克隆裸存储库并进行初始提交:

    cd /var/www/mysite/
    git init
    git add .
    git commit - 'initial commit'
    
  2. 我添加了共享用户来放置中央回购' (共享裸存储库)里面:

    - adduser git
    - su git
    - cd
    
  3. 我将存储库克隆到此用户的文件夹中。这将是'起源'库中。

    git clone --bare /var/www/mysite.com mysite.git;
    cd mysite.git;
    
  4. 我添加了第二个主要分支' develop'现在有两个分支' master':

    git branch develop;
    git branch -a
        *master
        develop
    
  5. 我添加了将开发该产品的用户:

    adduser maximus
    adduser len4ik
    
  6. 我为他们创建了ssh密钥并放到了.ssh目录:

    su maximus; 
    mkdir .ssh;
    cd ~/.ssh;
    ssh-keygen -t rsa -C "maximus@example.com";
    su len4ik; 
    mkdir .ssh;
    cd ~/.ssh;
    ssh-keygen -t rsa -C "len4ik@example.com";
    
  7. 我为每个人创建了公共存储库

    su maximus; cd;
    git clone /home/git/mysite.git;
    su len4ik; cd;
    git clone /home/git/mysite.git;
    
  8. 现在我的开发人员将在Windows上安装TortoiseGit,设置ssh密钥并从他们的公共存储库拉到在Windows上使用TortoiseGit在本地创建的存储库。

    我有几个问题:

    1. 在第4步应该选择哪个分支?它的主人是'现在,但我是否需要将其切换为“开发”#39;可能?
    2. 我假设用户将推送他们的公共存储库(/home/user/mysite)。他们的承诺将如何最终落入“中央回购”中。这是/home/git/mysite.git
    3. 这些用户如何能够结帐并从中央回购获取更新?
    4. 我需要在什么时候创建realease和功能分支?我是否需要在“中央回购”上创建它们? (/home/git/mysite.git)?

1 个答案:

答案 0 :(得分:0)

1)您可以选择您想要开发的任何分支 - 它可以是主要的也可以是开发的。我建议使用trunk / master -branch开发(在这种情况下,我建议删除develop分支本身)。

2)用户必须设置他们的master版本来跟踪你的repo(在这种情况下,git可以像任何其他非dvcs SCM一样行动 - 即具有每个提交者推送/拉出的中央仓库)。通过设置此跟踪/跟踪,他们可以推送到他们的“远程”。

3)同上,他们可以从远程/中央仓库拉/推。

4)如果您正在遵循持续交付/部署模型,则不需要功能/发布分支​​。如果没有,那么我会为每个版本建议一个分支。功能分支可以完成,但最好是短暂的。在这种情况下,master [branch]确实是master [代码库的副本]。