Git 在小團隊中的管理流程(轉)

來源:互聯網
上載者:User

標籤:

 

目標讀者:瞭解 Git 的基本概念,能夠使用 Git 進行基本的本地和遠程操作。

有關 Git 的基礎知識可以參見 知乎回答-怎樣使用 GitHub?,天豬(劉勇)給出了一些很好的學習資料。

本文介紹了小團隊中 Git 管理的基本使用流程。
小團隊的代碼管理可以採用這樣一種方式:項目存在一個中心遠程倉庫,作為團隊成員進行代碼交流的主要場所。同時可以存在一些成員遠程倉庫,用於局限在團隊中部分成員間的代碼交流。並將成員分成以下幾類不同的角色:負責人、普通組員、預發布責任人 和 版本修複責任人。下面的章節具體介紹了各類角色的 Git 使用流程。

基本須知
需要多個人共同完成的分支可以建立遠程分支,單個人完成的分支只建立本地分支即可。

一、負責人

負責人的職責:管理遠程倉庫。
負責人的工作均可直接在遠程倉庫完成。

1.建立項目
  • 建立公有項目
  • 添加README.md
  • 添加認證
  • 添加忽略檔案
  • 建立 dev 分支
2.其他
  • 更新 README.md 檔案
二、組員

工作流程

  • 複製項目
  • 簽出並建立 dev 分支,使其跟蹤遠端 origin/dev 分支。
  • 在dev分支基礎上建立自己的分支 member* 。
  • 在自己的分支上添加檔案
  • 在自己的分支上修改檔案
  • 合并到dev分支
  • 推送dev分支到origin/dev分支

// 更新 .gitignore 檔案

  • 從 dev 建立一個分支 ignore (如果預測變更頻繁就建立一個遠程分支,現在一般都有模板,偶爾有個沒有忽略的直接在dev分支上改就可以了)
  • 更新忽略檔案
  • 儘快合并到\推送到 origin/dev 分支 (避免兩個組員同時更改該檔案造成衝突。)
1.建立本地倉庫
$ cd [項目路徑] $ git clone https://coding.net/tangyikejun/GitTest2.git  $ git checkout -u -b dev origin/dev$ git checkout -b [MEMBER_NAME];
2.更新本地倉庫
$ git add .$ git commit -m”your comments”       // …                                               // 多次提交後完成了一項新的功能,自己的分支下能正常運行$ git checkout dev$ git merge --no-ff [MEMBER_NAME]                       // [MEMBER_NAME] 是自己的分支名稱$ git push
3.更新 .gitignore 檔案
$ git checkout dev        //…                                               // 更新忽略檔案$ git add .$ git commit -m“更新.gitignore檔案”$ git push
4. 常用查詢命令
$ git branch                                            // 查看自己所在分支 以及自己所擁有的分支$ git log --pretty=“%h - %cn(%ci): %s” --graph          // 查看自己的提交記錄$ git reflog                                            // 查看自己的操作曆史$ git status                                            // 查看本地倉庫當前的檔案狀態$ git blame [FILE_PATH]                     // 查看檔案的每一部分最後由誰改動
5.意外情況處理

意外:推送代碼到遠程 dev 分支時發生衝突。
解決方案:先把 遠程倉庫的 origin/dev 分支拉取下來,解決衝突檔案後再推送。平時的時候盡量避免不同組員更改同一個檔案。

$ git push        // …                                               // 遇到錯誤$ git pull       // …                                               // 解決衝突$ git add .$ git commit -m”solve conflict:由於XX原因出錯,修改XX檔案解決問題”$ git push

意外:不小心把自己的工作成果push到了master分支。
解決方案:先對master進行回退,再使用git push -f將錯誤的提交刪除。

三、預發布責任人 & 版本修複責任人1.預發布責任人

當需要發布新的版本時,預發布責任人:

  • 基於最新的 dev 分支建立一個 release-版本號碼 分支
  • 進行修繕工作
  • 合并到 dev 分支
  • 合并到 master 分支
  • 打標籤
  • 刪除 release-版本號碼 分支
$ git checkout dev$ git pull$ git checkout -b release-1.2        //…                                               // 進行修繕工作$ git checkout dev$ git merge --no-ff release-1.2  $ git checkout master$ git merge --no-ff release-1.2                         // 在評論中寫入相比上個版本新增的功能,修複的bug等詳細內容$ git tag v1.2$ git branch -d release-1.2

使用 git show [TAG_NAME]可以查看標籤對應的提交資訊。

2.版本修複責任人

當新發布的版本發現 bug 時,版本修複責任人:

  • 基於最新的 master 分支建立一個 hotfix-版本號碼 分支
  • 進行debug工作
  • 合并到 master 分支
  • 打標籤
  • 合并到 dev 分支
  • 刪除 hotfix-版本號碼 分支
$ git checkout master$ git pull$ git checkout -b hotfix-1.2.1        //…                                               // 進行修繕工作$ git checkout master$ git merge --no-ff hotfix-1.2.1 $ git tag v1.2.1 $ git checkout dev$ git merge --no-ff hotfix-1.2.1                        // 在評論中寫入修複的bug等詳細內容$ git branch -d hotfix-1.2.1
3.意外情況處理

意外:某組員完成自己的任務後合并到 dev 分支,推送時發現 release 分支的修繕工作更改了自己原來的檔案,產生了衝突。
解決方案:把 origin/dev 分支拉取下來,將衝突解決後再次提交。(注意這裡解決衝突後 master 分支上的檔案與該組員的工作成果依舊是有衝突的。除非該組員解決衝突時不更改 relese 時的修繕代碼,而僅僅更改自己的代碼來解決問題。因此,一旦有衝突產生,最好雙方進行合理交流達成一致意見。減少衝突。)

四、成員遠程倉庫

當某個團隊成員希望其他成員協助完成他的編程任務時,該成員可以為自己的本地倉庫建立一個遠程倉庫作為成員遠程倉庫,方便其他成員協助。建立成員遠程倉庫可以避免中心遠程倉庫的代碼交流繁雜混亂。
成員遠程倉庫在在操作上是中心遠程倉庫的簡化版。僅在細微處有所不同。

1.求助者
  • 建立成員遠程倉庫
  • 新增成員遠程倉庫
  • 推送自己的分支到成員遠程倉庫的 master 分支

  • 拉取成員遠程倉庫的 master 分支到自己的分支

$ git remote add [ALIAS_NAME] [GIT_ADRESS] $ git push [ALIAS_NAME]  [BRANCH_NAME]:[BRANCH_NAME_REMOTE] $ git pull

舉例:

$ git remote add binRepo https://coding.net/chenbin/GitTest2.git $ git push binbin  binRepo:master                               //由於是第一次推送,該操作已經使得分支binbin 跟蹤了遠程分支 binRepo/mastr

當某個分支 a 跟蹤了遠程分支 b,即 b 成為 a 的預設拉取來源,也因此,一個本地分支同一時間只能跟蹤一個遠程分支。

讓本地某分支跟蹤遠程分支的命令

$ git branch -u [REPO_NAME]/[REMOTE_BRANCH_NAME] [BRANCH_NAME]  // git branch -u binRepo/master binbin
2.協助者
  • 複製成員遠程倉庫
  • 在 master 分支基礎上建立自己的分支 member*
  • 在自己的分支上修改代碼
  • 合并到 master 分支後推送到成員遠程倉庫
$ git clone https://coding.net/chenbin/GitTest2.git $ git checkout -b member1;        //…                                                       //修改代碼$ git add .$ git commit -m"我幫你把XX功能完成了"$ git checkout --no-ff merge member1;$ git push


http://www.cnblogs.com/tangyikejun/p/4217561.html

Git 在小團隊中的管理流程(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.