目錄
- 前言
- 一、SourceTree
- 二、Git for Windows (previously MSysGit)
- 1. 下載補丁
- 1.1 getopt.exe
- 1.2 libintl3.dll
- 1.3 libiconv2.dll
- 1.4 安裝補丁
- 2. 安裝Git Flow
- 3. 測試
- 3.1 初始化(Initialize)
- 3.2 設置遠程
- 3.3 創建分支
- 3.4 功能開發
- 3.5 功能提交
- 3.6 推送分支
- 3.7 拉取分支
- 3.7 更新分支
- 3.8 功能完成
- 3.9 推送develop分支
- 3.10 上線
- 三、一鍵安裝
- 參考文獻
前言
GitFlow 是一種 Git 工作流,這個工作流程圍繞著project的發布(release)定義了一個嚴格的如何建立分支的模型。它是團隊成員遵守的一種代碼管理方案 。
由于它只是一個規范,你可以掌握規范后通過git命令實現,也可以通過一些工具的封裝進行使用。
推薦一個Git Flow規范教程:Git之GitFlow工作流 | Gitflow Workflow(萬字整理,已是最詳)
一、SourceTree
SourceTree
是一款免費的Git圖形化客戶端,它由Atlassian
開發,提供了跨平臺的支持,可運行在Windows和Mac操作系統上。Sourcetree
可以讓開發者更方便地使用Git來管理代碼,不需要在命令行中輸入復雜的Git命令,而是通過可視化的界面完成代碼管理操作。
SourceTree
是 Windows 和Mac OS X 下免費的 Git
和 Hg
客戶端,擁有可視化界面,容易上手操作。同時它也是Mercurial
和Subversion
版本控制系統工具。支持創建、提交、clone、push、pull 和merge等操作。最主要是它,支持中文、支持中文、支持中文。
SourceTree
支持多種Git工作流,例如Git Flow
、GitHub Flow
等,可以幫助開發者更好地管理Git分支、合并代碼、提交代碼等操作。此外,SourceTree
還集成了一些實用的功能,例如自動提交、撤銷提交、文件比較、文件歷史記錄等,方便開發者進行代碼管理和版本控制。
安裝及使用教程參考:【保姆級喂飯教程】Git圖形化客戶端Sourcetree安裝及使用教程
二、Git for Windows (previously MSysGit)
Git for Windows
就是我們在Windows上安裝的git,以前的名稱叫做MSysGit
,我們平常用到最多的就是它提供的Git Bash
。
在項目文件夾空白處右鍵,選擇Git Bash Here
即可打開
推薦一個Git安裝教程:Git安裝配置使用詳解(全網最全)
Git Flow官網教程:https://github.com/nvie/gitflow/wiki/Windows
1. 下載補丁
如圖所示,需要下載getopt.exe、libintl3.dll、libiconv2.dll三個文件
1.1 getopt.exe
打開下載連接:https://gnuwin32.sourceforge.net/packages/util-linux-ng.htm
點擊Binaries后面的Zip下載二進制文件
跳轉到sourceforge過5秒會自動下載
1.2 libintl3.dll
打開下載連接:https://gnuwin32.sourceforge.net/packages/libintl.htm
點擊Binaries后面的Zip下載二進制文件
1.3 libiconv2.dll
打開下載連接:https://gnuwin32.sourceforge.net/packages/libiconv.htm
1.4 安裝補丁
解壓縮下載文件,依次打開bin文件找到對應補丁,其他不需要,后面我會提供一個壓縮包,包括后面用到的git flow項目文件
復制到git的安裝目錄下的bin文件夾中
2. 安裝Git Flow
繼續按照官方教程
找一個文件夾,右鍵選擇Git Bash Here
,打開后復制粘貼克隆命令:
git clone --recursive git://github.com/nvie/gitflow.git
注意git不走代理,需要開啟虛擬網卡模式,而git://
仍然連接不上
遂換成http地址,加上--recursive
參數是為了遞歸克隆,因為原項目中使用鏈接引入了另一個項目
git clone --recursive https://github.com/nvie/gitflow.git
鏈接的項目下載失敗了,猜測應該沒用,先不管它了,需要的話可以直接到GitHub上通過網頁下載
重新通過GitHub下載一下,這樣倉庫更簡潔,沒有.git
文件,文件日期也是原日期,好看一些
解壓后點擊進入contrib
文件夾
直接在路徑欄輸入cmd
,即可從當前目錄打開cmd窗口,也可以通過cd進入
輸入下面命令,git地址替換為安裝路徑
msysgit-install.cmd "Git 地址"
可以看到就是把git flow對應分支文件復制到git的bin目錄下,也需要用到之前沒下載下來的文件
正好直接把cmd腳本扔給ai分析一下,確認就是簡單的復制文件,完全可以手動實現
【AI問答】GitFlow中msysgit-install.cmd代碼分析
先去下載一下引用的項目
https://github.com/nvie/shFlags/tree/2fb06af13de884e9680f14a00c82e52a67c867f1
解壓后復制到shFlags
文件下
再次執行會觸發覆蓋安裝,輸入y后會刪除再復制
最終git/bin目錄如下
3. 測試
在隨意一個文件夾打開git bash,輸入git flow
,顯示如下說明安裝成功
創建一個空項目,創建一個空文件備用,下面模擬一個日常開發流程
在gitlab上創建一個空項目
3.1 初始化(Initialize)
git flow init
會依次讓你設置各類分支名稱,一路回車默認即可,版本前綴我加了一個v
創建完成后會自動切換到develop分支
3.2 設置遠程
有時候可能會需要和別人共同開發,或者需要提交每日工作進度,需要把功能分支提交到gitlab上
git remote add origin 倉庫地址 # 設置遠程倉庫
git remote -v # 顯示所有遠程倉庫地址
推送master分支
git checkout master # 切換分支
git push -u origin master # 關聯并推送(使用 -u 或 --set-upstream)
推送develop分支
git checkout develop # 切換分支
git push -u origin develop # 關聯并推送(使用 -u 或 --set-upstream)
gitlab分支如下
3.3 創建分支
各種分支管理流程基本一致,這里以功能分支作為示例,
git flow feature start 分支名
git flow會基于develop分支創建feature分支,無論當前是什么分支,創建后會自動切換到功能分支
3.4 功能開發
打開main文件輸入一些文本
3.5 功能提交
git status #提交前查看暫存文件
git add . #添加文件
git commit -m "提交信息" #提交信息,-m 為單行信息
3.6 推送分支
# 首先要創建遠程并關聯,兩種寫法均可,如果功能分支或者人員比較多,可以考慮不推送功能分支
git flow feature publish 分支名 # 推送到遠程倉庫
git push -u origin feature/分支名
3.7 拉取分支
有推送當然就有拉取,除第一次外,每次推送前都應該先拉取
git pull
或者用git flow封裝的拉取命令
git flow feature pull origin 分支名
如果是第一次拉取一個別人的分支,更推薦用下面這個,我拉取的是自己就失敗了
git flow feature track 分支名
3.7 更新分支
功能更新后再次推送
git push
3.8 功能完成
git flow feature finish 分支名
git flow會幫我們把功能分支合并到本地develop分支,并把功能分支和遠程功能分支刪除
3.9 推送develop分支
目前新的功能還在本地develop分支,需要推到遠程develop分支
git push
3.10 上線
后續就是創建release分支,然后設置版本號和tag,完成分支時自動合并至develop分支和master分支
三、一鍵安裝
由于所有的補丁文件只需復制到git的bin目錄下即可,所以可以提前把所有文件打成一個壓縮包,這樣直接解壓不就好了,我已經打包好啦,需要的同學直接下載解壓就可以
Git Flow一鍵安裝補丁
想自己操作的也可以下載源文件學習一下
Git Flow補丁源文件
參考文獻
Git之GitFlow工作流 | Gitflow Workflow(萬字整理,已是最詳)
【保姆級喂飯教程】Git圖形化客戶端Sourcetree安裝及使用教程
Git安裝配置使用詳解(全網最全)
https://github.com/nvie/gitflow/wiki/Windows
【AI問答】GitFlow中msysgit-install.cmd代碼分析
https://github.com/nvie/shFlags/tree/2fb06af13de884e9680f14a00c82e52a67c867f1
喜歡的點個關注吧><!祝你永無bug~~~
/*_ooOoo_o8888888o88" . "88(| -_- |)O\ = /O____/`---'\____.' \\| |// `./ \\||| : |||// \/ _||||| -:- |||||- \| | \\\ - /// | || \_| ''\---/'' | |\ .-\__ `-` ___/-. /___`. .' /--.--\ `. . __."" '< `.___\_<|>_/___.' >'"".| | : `- \`.;`\ _ /`;.`/ - ` : | |\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^佛祖保佑 永無BUG
*/