1. 程式人生 > >多人合作專案如何去管理git倉庫

多人合作專案如何去管理git倉庫

  前記:在git之前依稀記得有SVN去管理程式碼倉庫,現在多用git去管理我們的程式碼;現在一般的專案大多數是多人同時開發,這樣就會存在一個問題就是如何去協調開發;這也是lz當前使用git開發管理的些許經驗,特記錄下以供參考!

  step1-------git常用命指令:

//git init     ----在本地新建一個repo,進入一個專案目錄,執行git init,會初始化一個repo,並在當前資料夾下建立一個.git資料夾.
//git clone    ----獲取一個url對應的遠端Git repo, 建立一個local copy.一般的格式是git clone [url].
//git status ----查詢repo的狀態 git status -s: -s表示short, -s的輸出標記會有兩列,第一列是對staging區域而言,第二列是對working目錄而言. //git log ----檢視本地分支操作記錄 //git add ----在提交之前,Git有一個暫存區(staging area),可以放入新新增的檔案或者加入新的改動. commit時提交的改動是上一次加入到staging area中的改動,而不是我們disk上的改動. //git add . ----會遞迴地添加當前工作目錄中的所有檔案. //git commit ----提交已經被add進來的改動.git commit -m “the commit message"
//git push ----提交本地分支到遠端分支 //git branch ----git branch可以用來列出分支,建立分支和刪除分支. //git branch -v----可以看見每一個分支的最後一次提交. //git branch: ----列出本地所有分支,當前分支會被星號標示出. //git branch (branchname): 建立一個新的分支(當你用這種方式建立分支的時候,分支是基於你的上一次提交建立的). //git branch -d (branchname): 刪除一個分支. //git checkout (branchname) ---切換到其他分支 //
git checkout -b (branchname): 建立並切換到新的分支. //git merge ----把一個分支merge進當前的分支. //git tag ----會在一個提交上建立永久性的書籤,通常是釋出一個release版本或者ship了什麼東西之後加tag. //git pull ----git pull會首先執行git fetch,然後執行git merge,把取來的分支的head merge到當前分支 //git remote -v:可以看見每一個別名對應的實際url. //git remote add [alias] [url]: 新增一個新的remote repo. //git remote rm [alias]: 刪除一個存在的remote alias. //git remote rename [old-alias] [new-alias]: 重新命名. //git remote set-url [alias] [url]:更新url. 可以加上—push和fetch引數,為同一個別名set不同的存取地址. //git revert ---- git revert HEAD: 撤銷最近的一個提交.

  以上為git常用的一些命令,當然有興趣的同學可以閱覽廖雪峰的git教程;PS:lz工作中用的是sourceTree介面git管理工具;感興趣的同學可以參考這篇博文sourceTree入門

  step2------進入正題;如何多人進行開發

  首先lz展示下開發中的git倉庫分支;

  

  正如上圖lz有一個release遠端分支,這個是線上的專案分支;這裡面的程式碼確保是線上最新的程式碼;同時,還有其他每個開發同學的對應分支,這些分支都是從release中創建出來的。每新增一個開發同學,第一件事就是從release分支上建立一個屬於自己的分支;

  比如:現在A、B同學有個需求就是新增一個首頁彈窗和新增頁面需求;我們的工作流程是如下圖:

  

  整體的流程按照如此去做即可,我們其實在專案中還會遇到一些情況,就是webpack中一些配置資訊的衝突;所以我們一般是把專案分為業務負責人以及公共模組負責人,這樣一些公共部分只有這個同學去負責人就好,其他人只需去更新自己的程式碼以及業務程式碼;還有一些vue專案會涉及到配置各自頁面路由時候會引起衝突;這裡建議用路由合併的方法避免衝突即可;

  最後還有一點一定要求每個同學一定要做好程式碼提交以及更新;不然比較頭疼,只要大家按部就班,多人開發還是比較愉快的。

  由於近期一直在思考這個專案管理的問題,所以一定要按照流程做事這樣才能提高效率;

  以上僅為個人看法,歡迎提意!