2011-11-22 78 views
4

我正在努力爲我們的團隊着手開發過程。開發過程,部署,GitHub

我們在任何時候都有3/4的獨立開發人員在我們的代碼庫上工作。

我們已經開始使用GIT,這個想法是,一塊工作不僅僅是一個活的修復,然後他們分叉主分支。

每個人在服務器上都有自己的開發環境,並且我們有一個臨時環境,它應始終是主分支的副本。

開發人員在本地進行開發,然後合併回主分支,然後應將其更改推送到登臺服務器(I want to set up something like this)。

如果全部被批准,那麼應該實時複製更改。我想以某種方式自動化,不知道具體如何。我們使用的是GitHub,所以我確定那裏有自動部署腳本。

雖然我們只有1個活服務器,但是如果只有主分支上的更改文件可以部署到活服務器上,它會很好。

任何想法如何做到這一點?

這種方法聽起來嗎?

任何其他意見/警告?

負載均衡器是否需要這樣做?

回答

4

我的公司以下最靠近this blog。我們創建分支生產。 我的情況是用於web開發

步驟我們做的是

開發叉的特性/錯誤,從

git checkout -b feature/featureA 
git checkout -b bug/B 

用這種方式,我們將得到新鮮的代碼已經在釋放行。在升級服務器上,我們使用測試分支。所以,當任何功能需要去測試,它會合併到分支

在臨時服務器,我們使用

git checkout testing 
git pull 

發佈分支處理燙,每燙將合併到這在合併到主人之前的分支。這個想法是,發佈分支會包裝一些提交前合併掌握其如果出現問題,它只是用命令一樣

git reset --hard HEAD^ 

臨時。

讓看到我的完整的工作步驟

git checkout master # Go to Master 
git checkout -b feature/New # New branch 

電子郵件來自老闆來解決嚴重的bug

git stash 
git checkout master 
git checkout -b hotfix/a 

做事

git commit 
git checkout release 
git merge hotfix/a 
git checkout master 
git merge release # In case that you want to pack all ready to production 

在生產

git tag -d previous 
git tag previous 
git pull 

哎呀!不工作

git checkout previous 

新的提交合並

git checkout master 
git pull 

繼續我的工作

git checkout feature/New 
git stash pop #Restore workspace 
git commit 
git checkout testing # ready to mix a test 
git merge feature/New 

準備釋放功能

git checkout release 
git merge feature/New 

這是BEC在測試分支中準備部署所有的東西。所以,當合並所有就緒功能版本分支,現在,你可以做最後的測試。

當一切現在去生產,我們做

git checkout testing 
git merge master 
git checkout release 
git merge master 

自動化腳本

我覺得你可以考慮爲.git/hooks/post-commit.sample聯播一些腳本,你提交的代碼後?無論如何,我從來沒有使用它。

+0

感謝你們,我根據你的帖子和你鏈接到的博客做了一些調整。 – iKode