2013-07-25 34 views
4

所以我開始實施this model一步一步實現'成功的git分支模型'

我完全是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. 我添加了共享用戶以放置'central repo'(共享裸倉庫):

    - adduser git 
    - su git 
    - cd 
    
  3. 我克隆了存儲庫到這個用戶的文件夾。這將是'起源'資料庫。

    git clone --bare /var/www/mysite.com mysite.git; 
    cd mysite.git; 
    
  4. 我添加第二個主要分支 '發展',現在有兩個分支 '主人':

    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 "[email protected]"; 
    su len4ik; 
    mkdir .ssh; 
    cd ~/.ssh; 
    ssh-keygen -t rsa -C "[email protected]"; 
    
  7. 我創造公共的資源爲他們每個人的

    su maximus; cd; 
    git clone /home/git/mysite.git; 
    su len4ik; cd; 
    git clone /home/git/mysite.git; 
    

現在我的開發人員在Windows上安裝TortoiseGit,設置SSH密鑰,並從他們的公共庫拉在Windows上使用TortoiseGit本地創建庫。

我有幾個問題:

  1. 在步驟4應該選擇哪一個分支?現在它是'主',但是我是否需要將它切換到「開發」?
  2. 我假設用戶將推動並從他們的公共倉庫(/home/user/mysite)拉。他們的承諾如何以'中央回購'結尾,即/home/git/mysite.git
  3. 這些用戶將如何檢查分支並從「中央回購」獲取更新?
  4. 在什麼時候我需要創建釋放和功能分支?我需要在'中央回購'(/home/git/mysite.git)上創建嗎?
+0

爲什麼你需要每個用戶「公共倉庫」? – Vasiliy

+0

這就是我認爲我需要從模型的解釋和[本章的Git專業書](http://git-scm.com/book/en/Distributed-Git-Distributed-Workflows),它顯示每個開發人員有自己的公共存儲庫 –

回答

0

1)你可以選擇你想要開發的任何一個分支 - 它可以是主或開發。我會推薦基於trunk/master-branch的開發(在這種情況下,我建議刪除develop分支本身)。

2)用戶將不得不設置他們的主版本來跟蹤你的回購(在這種情況下,git可以像任何其他非dvcs SCM一樣行事 - 即有一箇中央回購站,每個提交者推送到/從中) 。通過設置以下/跟蹤,他們可以推送到他們的「遙控」。

3)同上,他們可以從遠程/中央回購拉/推。

4)如果您遵循持續交付/部署模型,則不需要功能/發佈分支​​。如果沒有,那麼我會建議每個版本的分支。特徵分支可以完成,但最好應該是短暫的。在這種情況下,主[分支]確實是主[您的代碼庫的副本]。

+0

謝謝!我希望通過使用分佈式工作流程來實現該模型,同時您建議我使用中央工作流程。 –