git典型分支

2021-09-20 21:47:04 字數 4235 閱讀 2720

原文連線:

.master 分支

.develop 分支

.feature 分支

.release 分支

.hotfix 分支

**倉庫 origin 任何乙個機器都可以, 它是邏輯上乙個**單元. 理論上可以隨時切換, 一般固定為一台機器.

集中式的版本庫有兩個永久存在的主分支:

master 分支

develop 分支

master 分支上存放的應該是隨時可供在生產環境中部署的**(production ready state).

當開發活動告一段落, 產生了乙份新的可供部署的**時, master 分支上的**會被更新. 同時, 每一次更新, 都有對應的版本號標籤(tag)

初始化 master:

$ mkdir your_project_name

$ cd your_project_name

$ git init

初始化後在本地**庫會自動建立乙個.git隱藏檔案, 這個就是本地**庫.詳見 c 步驟

預設的名稱就是 master

develop 分支是儲存當前最新開發成果的分支.

通常這個分支上的**也是可進行每日夜間發布的**(nightly build). 因此這個分支有時也可以被稱作「integration branch」.

建立 develop 分支:

$ git branch develop

$ ssh user@host

$ git init --bare /path/to/repo.git

確保寫上有效的user(ssh的使用者名稱), host(伺服器的網域名稱或ip位址), /path/to/repo.git(你想存放倉庫的位置).

注意, 為了表示是乙個裸倉庫, 按照約定加上.git副檔名到倉庫名上.

$ git clone ssh://user@host/path/to/repo.git

$ git push origin master

$ git push origin develop

$ git pull --rebase origin master

$ git status

完成編輯修改這些檔案後, 用老套路暫存這些檔案, 並讓 git rebase 完成剩下的事:

$ git add

$ git rebase --continue

重新解決衝突(重頭再來, 回到解決衝突之前):

$ git rebase --abort

$ git checkout master

切換到 master

$ git checkout develop

切換到 develop

$ git commit -m 「add distributed」

[master ea34578] add distributed

1 file changed, 1 insertion(+), 1 deletion(-)

引數 m 後面是注釋

助性的分支, 以幫助團隊成員間的並行開發, 特性的簡單跟蹤, 產品的發布準備事宜, 以及快速的解決線上問題.

這些輔助性分支往往只要有限的生命週期, 因為他們最終會被刪除.

輔助性分支包括:

.feature 分支

.release 分支

.hotfix 分支

輔助性分支一般位於非**倉庫 origin 機器上.

feature 分支(有時也可以被叫做「topic分支」)通常是在開發一項新的軟體功能的時候使用, 這個分支上的**變更最終合併回 develop 分支或者乾脆被拋棄掉(例如實驗性且效果不好的**變更)

feature 分支從 develop 分支拉取, 最後合併於 develop 分支. 是 release 分支的基礎, 生命週期早於 release 分支.

feature 分支命名慣例: feature-*

建立 feature 分支:

$ git checkout -b myfeature develop

switched to a new branch 「myfeature」

feature 分支合併到 develop 分支:

$ git checkout develop

switched to branch 『develop』

$ git merge --no-ff myfeature

updating ea1b82a…05e9557

(summary of changes)

刪除 feature 分支:

$ git branch -d myfeature

deleted branch myfeature (was 05e9557).

release 分支是為發布新的產品版本而設計的.

在這個分支上的**允許做小的缺陷修正、準備發布版本所需的各項說明資訊(版本號、發布時間、編譯時間等等)

release 分支從 develop 分支拉取, 最後合併於 develop 分支和 master 分支. 在 feature 分支之後操作, 生命週期晚於 feature 分支.

乙個 release 分支建立的時候, develop 分支已經合併了乙個或多個 feature 分支功能.

release 分支命名慣例: release-*

建立 release 分支:

$ git checkout -b release-1.2 develop

switched to a new branch 「release-1.2」

$ ./bump-version.sh 1.2

files modified successfully, version bumped to 1.2.

合併 release 分支到 master:

$ git checkout master

switched to branch 『master』

$ git merge --no-ff release-1.2

merge made by recursive.

(summary of changes)

$ git tag -a 1.2

合併 release 分支到 develop:

$ git checkout develop

switched to branch 『develop』

$ git merge --no-ff release-1.2

merge made by recursive.

(summary of changes)

刪除 release 分支:

$ git branch -d release-1.2

deleted branch release-1.2 (was ff452fe).

feature 分支從 master 分支拉取, 最後合併於 develop 分支和 master 分支. 與 feature 分支和 release 分支無關係.

feature 分支是用於快速修復生產環境的 bug 而產生的.

hotfix 分支命名慣例: hotfix-*

建立 hotfix 分支:

$ git checkout -b hotfix-1.2.1 master

switched to a new branch 「hotfix-1.2.1」

$ ./bump-version.sh 1.2.1

files modified successfully, version bumped to 1.2.1.

合併 hotfix 分支到 master :

$ git checkout master

switched to branch 『master』

$ git merge --no-ff hotfix-1.2.1

merge made by recursive.

(summary of changes)

$ git tag -a 1.2.1

合併 hotfix 分支到 develop :

$ git checkout develop

switched to branch 『develop』

$ git merge --no-ff hotfix-1.2.1

merge made by recursive.

(summary of changes)

刪除 hotfix 分支:

$ git branch -d hotfix-1.2.1

deleted branch hotfix-1.2.1 (was abbe5d6).

Git 合併分支 推送分支

1 本地倉庫與遠端倉庫同步,提取所有它獨有的資料到本地分支,供後續操作。git fetch origin2 把遠端倉庫中分支名為aimbranch中的 合併到本地倉庫中你當前所在的分支上。git merge no ff origin aimbranch3 把本地倉庫中你所在的分支中的 推送到遠端倉庫...

Git分支管理,建立分支

該鏈結博主詳細的描述了git 最主要的一句話 在不同的分支進行版本管理,只有在自己的分支上才會生效 合併衝突 修改主分支檔案 合併兩個或多個分支 建立乙個分支,在主分支master上切出乙個開發分支 git checkout b 分支名稱建立好新分支後,你現在所有的操作都是在新分支上進行 git b...

Git建立分支管理分支

一 clone repository clone github 上的repository,如下 git clone git github.com fbing design patterns.git 1二 管理分支 1 檢視分支 1 檢視本地分支 使用 git branch命令,如下 git bran...