(項目管理 進階篇)Git 團隊版本管理 原則與思路

提及來在來到公司以前一直沒有好好用 Git 來管理分支. 以前練習的時候有用到 Git, 可是也僅限於本地倉庫的提交而已, 這樣作更多的只是留下一個可供追尋的路徑 ( History ), 沒有太多的 管理 職能. 在多人協同合做的項目中, Git 終於發揮出它強大的優點.git

安裝

apt-get install git

準備

在看這篇文章以前你得具有 Git 的基礎, 基礎教程: 廖雪峯 Git.fetch

Git 開發人員視角

開發人員來到公司第一件事情要克隆得到公司在 Git Lab 的項目.spa

git clone 項目地址 SSH 地址

項目拉取下來以後通常遵循新建一個本身的子分支開發.命令行

git checkout -b dev

開發人員能夠正常開發了, 程序 / 功能 開發完後.code

# 查看本地倉庫狀態, 綠色表明添加到 Git 管理中, 紅色表明沒有添加到 Git 管理
git status  
# 將文件添加到 Git 管理之中
git add .  
# 將文件添加到本地倉庫
git commit -m '本次功能說明'

Git 管理者須要合併代碼的時候開發人員得推送到項目遠程倉庫.教程

# git remote 能夠查看遠程倉庫地址
git push origin dev:dev

上面代碼中是將本地 dev 分支推送到遠程 dev 分支, 注意: 開發人員不要提交到遠程 master 分支, 必定是遠程子分支, 若是遠程沒有子分支, 第一次提交會自動建立遠程子分支.開發

Git 管理者將代碼合併以後, 開發者須要獲取合併後的最新代碼, 獲取推薦使用 git fetch, 不推薦使用 git pull 由於 git pull 會將代碼獲取後自動合併到當前分支並提交到本地倉庫, 不利於檢查衝突, git fetch 會將遠程分支存在到本地但不會合並, 只須要本身手動合併.rem

# 查看遠程分支
git fetch  
# 合併遠程主分支, 通常來講不會有衝突
git merge origin/master  
# 爲了保持本地主分支和子分支相同版本, 切換到主分支合併剛剛從遠程拉取最新代碼的子分支
git checkout master  
git merge dev  
# 而後再切換回子分支開發
git checkout dev

開發者在項目中大體 Git 運用流程就完成了.get

Git 管理人員角度

管理人員也要建立一個子分支開發, 開發人員都將本身的子分支提交到遠程的子分支後, 管理人員首先查看遠程分支提交的信息記錄, 而後再將開發人員的遠程子分支與本身本地子分支合併. 注意: 管理人員也要將本地子分支提交到本地倉庫, 保證本地倉庫 乾淨.it

# 查看遠程分支提交狀況
git fetch  
# 拉取開發人員的遠程子分支
git merge origin/開發人員遠程子分支名稱

沒有出現衝突, 會彈出全屏英文信息, 大體內容是合併信息, 按 ctrl + c 關閉, 隨後會自動提交到本地倉庫, 若是有衝突會在命令行提示出來, 管理者只須要 git status 查看那些文件是 紅色 的這表明有衝突有改動. 而後管理者本身打開有衝突那個文件手動解決衝突, 衝突之中 HEAD 表明本身的代碼區, == 是分界符號, 分界符號下面是開發人員的代碼區, 解決完成而後再提交到本地倉庫.

# 查看那些文件有衝突 ( 紅色 )
git status  
# 衝突解決完後
git add .  
git commit -m '合併其餘人代碼'

依次合併其餘人員代碼, 合併完全部人代碼後, 再把代碼提交到遠程主分支.

# 將代碼提交到遠程倉庫
git push origin dev:master  
# 保持主分支與子分支的一致性
git checkout master  
git merge dev  
# 開發必定是在子分支
git checkout dev

管理者在項目中大體 Git 管理流程就完成了.

相關文章
相關標籤/搜索