Git分布式工作流程

2022-05-25 03:39:08 字數 1679 閱讀 6741

git官網給出了三種分布式工作流程:

這裡以私有gitserver伺服器上的git-test專案為例,簡單說明集中式工作流程。

基於分支的開發策略參考git pro

使用分支意味著你可以把你的工作從開發主線上分離開來,以免影響開發主線。

使用git開發的過程中,鼓勵使用分支進行迭代開發,分支的建立、刪除、合併非常簡單,任何主題(新特性,bug,test,idea...)都可以在單獨的分支上存在。

參考git pro

git管理的專案,有乙個預設分支master,可以理解為專案的主分支,其他分支可以根據需要建立。

一般來說,master分支只負責版本發布,實際開發過程在類似於dev分支或develop的分支上完成。而每個新特性或每次迭代都在各自獨立的分支上開發,最後合併到dev分支。

從伺服器轉殖專案

cd git clone git@gitserver:/git/git-test

cd git-test

設定跟蹤分支並拉取內容

從遠端轉殖的專案只有master分支的內容,本地master分支預設跟蹤遠端的master分支,即origin/master。而本地dev分支跟蹤遠端dev分支需要手動設定。可以使用以下方式:

git checkout --track origin/dev

git checkout -b dev origin/dev
這樣以來,本地dev分支和origin/dev就建立了聯絡,可以直接push或pull,可以用git branch -vv檢視所有的跟蹤分支。

要設定已有的本地分支跟蹤乙個剛剛拉取下來的遠端分支,或者想要修改正在跟蹤的上游分支,可以使用 -u 或 --set-upstream-to 選項執行 git branch 來顯式設定:

git checkout dev

git branch -u origin/dev

本地開發

為了降低開發複雜度,強烈建議本地開發使用分支,每個新特性和迭代都可以建立新的分支,完成後合併到本地dev分支。

同步倉庫

注意:只能推送本地dev分支到遠端dev分支,master分支只用於版本發布,可以定期從伺服器拉取master分支以同步倉庫內容。

由於是分布式開發,推送前一定要將其他人提交到庫的內容合併到本地,這也可以避免推送時的衝突。有兩種合併方式,一種是使用pull命令,一種是先fetch然後合併,pull直接合併遠端分支的內容到本地,有一定的風險,推薦使用第二種。

git fetch origin
該命令會拉取origin的所有分支到本地,可以通過乙個特殊的名字fetch_head來顯示遠端和本地的差異:

git log -p head..fetch_head
也可以

git diff dev origin/dev
該命令會顯示遠端倉庫內最新的內容,合併遠端dev分支到本地可以使用merge。

git checkout dev

git merge origin/dev

推送dev分支
git push origin dev

分布式 Git 分布式工作流程

同傳統的集中式版本控制系統 cvcs 不同,開發者之間的協作方式因著 git 的分布式特性而變得更為靈活多樣。在集中式系統上,每個開發者就像是連線在集線器上的節點,彼此的工作方式大體相像。而在 git 網路中,每個開發者同時扮演著節點和集線器的角色,這就是說,每乙個開發者都可以將自己的 貢獻到另外乙...

分布式 Git 分布式工作流程

你現在擁有了乙個遠端 git 版本庫,能為所有開發者共享 提供服務,在乙個本地工作流程下,你也已經熟悉了基本 git 命令。你現在可以學習如何利用 git 提供的一些分布式工作流程了。這一章中,你將會學習如何作為貢獻者或整合者,在乙個分布式協作的環境中使用 git。你會學習為乙個專案成功地貢獻 並接...

深入理解Git原理 分布式工作流程

同傳統的集中式版本控制系統 cvcs 不同,git 的分布式特性使得開發者間的協作變得更加靈活多樣。在集中式系統中,每個開發者就像是連線在集線器上的節點,彼此的工作方式大體相像。而在 git 中,每個開發者同時扮演著節點和集線器的角色 也就是說,每個開發者既可以將自己的 貢獻到其他的倉庫中,同時也能...