一、安裝sourcetree
1.git插件安裝
兩個插件:
msysgit是Windows版的Git,從http://msysgit.github.io/下載安裝即可
Git—preview.exe,未找到官網版本,從網上搜索安裝包即可【推薦這個,這個能夠在win下使用git命令行】
以上兩個插件安裝一個即可
2.安裝sourcetree
安裝sourcetree,下載網址:https://www.sourcetreeapp.com/download/ 先安裝git插件,sourcetree直接按照提示安裝即可
3.配置sourcetree
打開sourcetree,點擊“工具”>“選項”,如下圖
“一般”配置頁面:
除截圖中紅圈外,其他均是默認即可
“比較”配置頁面: 默認配置即可
“git”配置項: “合併時不要使用快進配置項,總是創建提交”---配置項意味着每次分支合併都會創建新的提交節點,推薦這樣的使用方式 “使用git bash 作爲默認終端”–如果同時安裝了sysmgit和gitbash時,此配置項生效,建議使用gitbash
“驗證”配置頁面: 此配置項用於添加遠程服務器交互時的身份驗證,採用“賬號/密碼”方式,如果前面已經配置了公鑰私鑰訪問的方式,此配置項可以忽略
二、配置gitlab
添加SSH key
1.點擊My Profile
2.點擊SHH pulibc keys下面的AddPublic Keys
3.點擊key文本框下面的 here
4.出現添加SSH 的示例
三、sourcetree認證配置(祕鑰和密碼方式)
1在桌面上打開GIT BASH 終端
然後將其中第二段以後的換行縮進,然後點擊Save
5.切換到SourceTree,選擇Options
然後在SHH Client選項中選擇OpenSSH,其他的不需要修改
6.使用命令行
點擊右上角的“終端”,則可以用類似於linux下的純命令行的方式,操作git倉庫,
6、賬號/密碼登陸 每次克隆倉庫時,sourcetree會要求輸入賬號密碼,錄入後會自動保存賬號和密碼, 保存位置:工具->選項->驗證,如下圖 如果要求改,點擊編輯,更新密碼 如果不需要,直接點擊刪除
7.https方式無法獲取代碼解決方法 有時發現https方式無法獲取代碼:如在sourcetree下輸入https開頭的url,獲取代碼,報錯如下圖所示:
解決方法:
需要在git命令行下執行:gitconfig --global http.sslverify false
四、開發使用場景
1.在gitlab中選擇一個項目,複製地址,然後clone到SourceTree中
2.點擊Clone
3.將複製的地址粘貼到Source Path中,然後將鼠標移動到Destination Path 文本框上點擊。如果出現this is a Git repository ,表示成功,然後點擊Clone. 如果是第一次使用的話,會彈出輸入賬號密碼的框,在上面輸入你的郵箱和密碼就可以了。
4. 生成代碼倉庫
代碼clone下來後,如下圖所示,
1、 是倉庫在本地的標籤,不同名稱爲不同倉庫
2、 本地倉庫的所有分支:在clone倉庫是如果不指定checkout分支,默認本地倉庫的
分支時master,且只有這一個分支 3、 倉庫的標籤
4、 遠程倉庫在本地的副本,每次clone一個新倉庫時,會把遠程倉庫的所有分支都獲
取到本地倉庫,如下圖所示有三個倉庫:master、develop、yunshang_feature_1
5將指定的開發分支獲取到本地
首次clone倉庫,默認本地分支時master,如下圖,master前有個小的打鉤“√”,意味着當前的本地分支是master
如果本次模塊開發在yunshang_feature_1上,則需要將yunshang_feature_1 從本地檢出 ,將鼠標放置遠程的yunshang_feature_1上,右鍵,點“簽出origin/yunshang_feature_1„„”
等待數秒,查看當前已是yunshang_feature_1分支,
6編寫代碼,提交版本庫 開發人員將使用自己的開發工具打開倉庫所在文件夾,進行代碼開發,在此不做說明 修改文件後,點擊左上角“提交”,如果是首次創建的文件,需要在先點擊“添加”按鈕
會彈出提交頁面: 在提交信息一欄,填寫提交信息,不填寫提交信息會有提示,
要求每次提交必須填寫
提交信息 覈對每個文件的變更內容 如果無誤,點擊右下角進行提交
7打標籤
代碼在本地提交完畢後,打上里程碑標籤
步驟:
一、選定分支
二、打標籤,默認是代碼最新
8、自測通過,推送至遠程yunshang_feature_1分支
點擊“推送”
彈出推送頁面: 勾選yunshang_feature_1,則推送至遠程的yunshang_feature_1 注意:要求推送時,本地和遠程名稱必須一致,也就是說不允許本地分支隨意推送至不同名的遠程分支;如果有推送的需求,先在本地建立相同名稱本地分支,再推送至同名遠程分支
推送成功:
9創建本地分支
情景:開發如果想更自由更方便的做一些開發或測試相關的代碼,不想污染了比較正式的開發分支,則可以在本地繼續創建分支。 本實例中,本地yunshang_feature_1是自己標準的本地開發分支,不想過度提交或者其他原因,則可以在本地yunshang_feature_1創建新的分支 操作: 選中yunshang_feature_1,點擊“分支”按鈕
彈出框如下:
1、 新的分支名稱 2、 創建後直接切換到這個分支 3、 可以選擇在這個分支的指定版本創建新的分支,如果不指定某個提交,則默認從 最新的提交創建分支 4、 點擊按鈕創建
分支創建成功,通過途中紅框可以看出,多個分支的最新提交版本一致
現在開發可以在yunshang_feature_1_test_1上隨意提交任何東西,既不會影響別人,也不會影響自己,即使代碼污染了,也可以右鍵直接刪掉此分支
10分支合併
假設開發在本地yunshang_feature_1上開發了新功能,但是本次需要提交到master上 步驟如下: 1、 Yunshang_feature_1合併到本地master 2、 更新遠程master倉庫,併合併到本地master 3、 本地master分支推送到遠程master分支 操作如下 1、 Yunshang_feature_1合併到本地master:首先切換到本地master
本地yunshang_feature_1合併到本地master
2更新遠程master倉庫,併合併到本地master 選中master,點擊右鍵,點擊紅框按鈕,
選擇“好”
提示合併成功
3、本地master分支推送到遠程master分支 點擊“推送到origin/master(已追蹤)”
提示推送成功
11衝突解決
分支合併時會產生衝突,解決衝突辦法和svn一致: 分支A和分支B都是從master同一次提交創建而來; 衝突解決方法: 分支A合併到分支B,產生衝突,找出衝突文件,將A中衝突內容改成和B一致後,將修改內容再次提交到B
此時分支A的info文件內容是:
支B的info文件內容
合併操作:
1、 切換版本庫至分支B
2、 合併分支A到B
會彈出衝突提示:
衝突的內容提示:
1、 本次合併產生一條新的提交記錄
2、 顯示出本次合併產生的衝突文件,合併量大時可能不止一個
3、 顯示當前衝突文件的衝突內容,途中顯示的衝突內容與上文分支內容一致
打開衝突文件查看,和sourcetree界面顯示一致:
3、 衝突解決方法 目前看,當前的檢出版本是分支B(注意,由於衝突的存在,檢出的分支已經不可切換了,不信可以嘗試下)
將B中與A衝突的文件內容,改成和A一致;去掉顯示的”<<<<<<<<<<<<”、“=========”和”>>>>>>>>>”等提示符,再在分支B中重新提交。 B分支修改後info文件:
點擊“提交”
合併成功