Sourcetree的使用

目錄

基礎(chǔ)配置

基礎(chǔ)操作

拉取遠(yuǎn)程項(xiàng)目

pull(拉取)、commit(提交) 、push(推送)

新建分支

合并分支

Git工作流

沖突解決

配置忽略文件

SourceTree&Git部分名詞解釋

其他待補(bǔ)充


博客鏈接:https://www.zjhuiwan.cn/info/20211014/4220282518939357.html

Sourcetree用了一段時(shí)間,記錄一些過(guò)程.

  • SourceTree擁有可視化界面的項(xiàng)目版本控制軟件,適用于git項(xiàng)目管理
  • 使用遠(yuǎn)程倉(cāng)庫(kù)的好處就是可以不同而地方不同的電腦直接拉取項(xiàng)目開發(fā),開發(fā)完提交就行了
  • 還可以進(jìn)行多人協(xié)作開發(fā)

需要注意的就是,每次寫完代碼結(jié)束的時(shí)候都要把代碼提交掉,這樣電腦就算炸了,代碼還在遠(yuǎn)程倉(cāng)庫(kù)~

基礎(chǔ)配置

首先下載安裝好Sourcetree,官網(wǎng)下載即可: Sourcetree | Free Git GUI for Mac and Windows

安裝完成之后先配置一下git,下載git并安裝,官網(wǎng)下載地址:Git。

如需從gitlab上拉取代碼,需要配置密鑰,運(yùn)行g(shù)it,生成秘鑰,
命令為:ssh-keygen -t rsa,如圖:
秘鑰生成的目錄在你系統(tǒng)盤用戶目錄下的.ssh\id_rsa.pub

https://images2018.cnblogs.com/blog/755150/201805/755150-20180510235929965-1000610226.png
image.gif

在自己的git服務(wù)器上綁定自己git公鑰;
(綁定操作:Settings --> SSH Keys --> Add key(打開本地公鑰文件粘貼里面所有內(nèi)容)),如圖:

https://images2018.cnblogs.com/blog/755150/201805/755150-20180511000017303-890428023.png
image.gif

Sourcetree配置,點(diǎn)擊"工具-->選項(xiàng)-->一般",注意以下4個(gè)部分的設(shè)置,如圖:

https://images2018.cnblogs.com/blog/755150/201805/755150-20180511000034153-218715854.png
image.gif

也可以不綁定然后克隆項(xiàng)目的時(shí)候輸入賬號(hào)密碼驗(yàn)證。

基礎(chǔ)操作

拉取遠(yuǎn)程項(xiàng)目

  1. 點(diǎn)擊+號(hào)新增一個(gè)tab
  2. 點(diǎn)擊clone克隆遠(yuǎn)程項(xiàng)目
  3. 輸入遠(yuǎn)程倉(cāng)庫(kù)地址
  4. 選擇保存在本地的位置和項(xiàng)目名稱

如果箭頭指向的倉(cāng)庫(kù)類型表明“這不是一個(gè)標(biāo)準(zhǔn)的Git倉(cāng)庫(kù)”,可能是有以下原因:項(xiàng)目地址獲取錯(cuò)誤或者沒(méi)有項(xiàng)目訪問(wèn)權(quán)限

  1. 選擇要從倉(cāng)庫(kù)拉取的分支
  2. 克隆,完成后就把代碼拉到本地啦,可以開始進(jìn)行本地開發(fā)
image
image.gif

項(xiàng)目克隆完成之后是這個(gè)界面

image
image.gif

如果有需求提交或者拉取或者推送的內(nèi)容都有提示,類似下圖這樣,還很非常方便直觀的。

image
image.gif

pull(拉取)、commit(提交) 、push(推送)

這些是日常工作最常用的功能,之前一直用git命令,在sourcetree上直接點(diǎn)按鈕就行

pull拉取遠(yuǎn)程代碼到本地(將同事提交的代碼先拉到本地,再開發(fā),防止沖突),直接點(diǎn)擊操作區(qū)的拉取按鈕即可將代碼拉取,如果有需要拉取的內(nèi)容會(huì)顯示數(shù)字。

image
image.gif

Commit提交自己寫的代碼到分支

image
image.gif

Push將提交的代碼推送到遠(yuǎn)程倉(cāng)庫(kù)

image
image.gif
image
image.gif

注意:如果有待拉取內(nèi)容,一定要先拉取再提交/****推送,避免代碼沖突

新建分支

項(xiàng)目克隆完成之后,我們拉取的是master分支上的代碼,由于master分支是主分支,項(xiàng)目多人開發(fā)的情況下,很容易造成沖突。
所以我們一般會(huì)在gitlab遠(yuǎn)程新建一個(gè)自己的分支

image
image.gif

這樣分支就創(chuàng)建了,創(chuàng)建完成后左側(cè)會(huì)出現(xiàn),雙擊可以切換當(dāng)前分支,在master分支改了代碼,切換到test20211014分支的時(shí)候不會(huì)出現(xiàn)master上改的代碼,互不影響,只有在開發(fā)完了,提交推送合并分支的時(shí)候生效,所以本地開發(fā)要注意當(dāng)前分支。

image
image.gif

合并分支

將兩個(gè)分支的代碼合并,比如主分支事master,然后在test分支進(jìn)行開發(fā),開發(fā)完成后需要保持master事最新版本,所以需要將test分支合并到master。具體操作如下圖:

image
image.gif

合并完成后會(huì)有條記錄,可以看到合并內(nèi)容,這樣兩個(gè)分支的代碼就合并到了master。

目錄

基礎(chǔ)配置

基礎(chǔ)操作

拉取遠(yuǎn)程項(xiàng)目

pull(拉取)、commit(提交) 、push(推送)

新建分支

合并分支

Git工作流

沖突解決

配置忽略文件

SourceTree&Git部分名詞解釋

其他待補(bǔ)充

Git工作流

分支共有5種類型

1) master,最終發(fā)布版本,整個(gè)項(xiàng)目中有且只有一個(gè)

2) develop,項(xiàng)目的開發(fā)分支,原則上項(xiàng)目中有且只有一個(gè)

3) feature,功能分支,用于開發(fā)一個(gè)新的功能

4) release,預(yù)發(fā)布版本,介于develop和master之間的一個(gè)版本,主要用于測(cè)試

  1. hotfix,修復(fù)補(bǔ)丁,用于修復(fù)master上的bug,直接作用于master

當(dāng)開發(fā)中需要增加一個(gè)新的功能時(shí),可新建feature分支,用于增加新功能,并且不影響開發(fā)中的develop源碼,當(dāng)新功能增加完成后,完成feature分支,將新功能合并到develop中,更新develop上的代碼

1) 新建feature。首先當(dāng)前開發(fā)分支指向develop,點(diǎn)擊“Git工作流”
image
image.gif

在預(yù)覽中可看到,feature分支是從develop分出的,輸入功能名稱,點(diǎn)擊確定,項(xiàng)目結(jié)構(gòu)中增加feature分支,并且當(dāng)前開發(fā)分支指向新建的feature分支

image
image.gif

在dev_20211014上進(jìn)行功能開發(fā),功能開發(fā)完成后,需要同步到develop分支。

將當(dāng)前分支指向dev_20211014分支,點(diǎn)擊“Git工作流”,選擇“完成功能”

image
image.gif
image
image.gif

注意:當(dāng)確定開發(fā)完成并且無(wú)誤后再完成工程并刪除分支,否則可以保留開發(fā)分支

需要再增加新的功能時(shí),重復(fù)以上操作即可

當(dāng)多人協(xié)作開發(fā)時(shí),可能會(huì)出現(xiàn),不同人員對(duì)同一文件進(jìn)行操作,從而引起合并沖突,比如你再dev_20211014上開發(fā)了一個(gè)功能涉及到A.java,你的同事也有個(gè)需求要開發(fā),在feature 分支上新建了dev_20211014_2,也涉及到了A.java。開發(fā)完成你們合并的時(shí)候就有沖突產(chǎn)生,參照下面的沖突解決即可。

當(dāng)開發(fā)到一定階段,可以發(fā)布測(cè)試版本時(shí),可以從develop分支,建立release分支,進(jìn)入預(yù)發(fā)布測(cè)試階段。點(diǎn)擊“Git工作流”,選擇“建立新的發(fā)布版本”

image
image.gif

發(fā)版后線上有bug需要解決可以建立新的修復(fù)補(bǔ)?。?/p>

image
image.gif

具體操作參考上面的新建功能分支。

沖突解決

多人開發(fā)時(shí),由于修改了同一個(gè)文件,可能會(huì)有文件沖突的情況。
拉取代碼時(shí),會(huì)有沖突提示,解決完相關(guān)的沖突文件,重新提交即可。

可以在提交的時(shí)候先拉取代碼,然后進(jìn)行提交推送,可以解決沖突,如果拉取不下來(lái)可以先暫存再拉取,拉取完之后取消暫存,再刪掉沖突代碼,然后推送。

如果代碼有沖突,在代碼上下文會(huì)出現(xiàn)如下內(nèi)容:

<<<<<<< HEAD

Xxxxxxxx(當(dāng)前代碼)

=======

Xxxxxxxx(需要合并的代碼)

自己根絕實(shí)際情況解決掉沖突代碼即可。

配置忽略文件

Sourcetree會(huì)把本地所有修改過(guò)的代碼都提示待提交,哪怕只是加了一個(gè)空格。所以對(duì)于一些編譯文件,可以選擇不提交,因?yàn)闆](méi)用。比如target下面的文件,只要進(jìn)行如下配置即可忽略。

image
image.gif

利用.gitignore過(guò)濾文件,如編譯過(guò)程中的中間文件,等等,這些文件不需要被追蹤管理。 正常情況下,管理員創(chuàng)建項(xiàng)目后需要直接將忽略文件創(chuàng)建好。

image
image.gif

SourceTree&Git部分名詞解釋

    • 克隆(clone):從遠(yuǎn)程倉(cāng)庫(kù)URL加載創(chuàng)建一個(gè)與遠(yuǎn)程倉(cāng)庫(kù)一樣的本地倉(cāng)庫(kù)
    • 提交(commit):將暫存文件上傳到本地倉(cāng)庫(kù)(我們?cè)贔inder中對(duì)本地倉(cāng)庫(kù)做修改后一般都得先提交一次,再推送)
    • 檢出(checkout):切換不同分支
    • 添加(add):添加文件到緩存區(qū)
    • 移除(remove):移除文件至緩存區(qū)
    • 暫存(git stash):保存工作現(xiàn)場(chǎng)
    • 重置(reset):回到最近添加(add)/提交(commit)狀態(tài)
    • 合并(merge):將多個(gè)同名文件合并為一個(gè)文件,該文件包含多個(gè)同名文件的所有內(nèi)容,相同內(nèi)容抵消
    • 抓取(fetch):從遠(yuǎn)程倉(cāng)庫(kù)獲取信息并同步至本地倉(cāng)庫(kù)
    • 拉取(pull):從遠(yuǎn)程倉(cāng)庫(kù)獲取信息并同步至本地倉(cāng)庫(kù),并且自動(dòng)執(zhí)行合并(merge)操作,即 pull=fetch+merge
    • 推送(push):將本地倉(cāng)庫(kù)同步至遠(yuǎn)程倉(cāng)庫(kù),一般推送(push)前先拉?。╬ull)一次,確保一致
    • 分支(branch):創(chuàng)建/修改/刪除分枝
    • 標(biāo)簽(tag):給項(xiàng)目增添標(biāo)簽
    • 工作流(Git Flow):團(tuán)隊(duì)工作時(shí),每個(gè)人創(chuàng)建屬于自己的分枝(branch),確定無(wú)誤后提交到master分枝
    • 終端(terminal):可以輸入git命令行

其他待補(bǔ)充

……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Window系統(tǒng) (1) 賬號(hào)密碼輸入錯(cuò)誤后導(dǎo)致再也不能進(jìn)行g(shù)it操作 問(wèn)題描述:在本地的git,長(zhǎng)時(shí)間不用...
    瑟聞風(fēng)傾閱讀 4,428評(píng)論 0 3
  • GIT (分布式版本控制系統(tǒng)) Git是一款免費(fèi)、開源的分布式 版本控制系統(tǒng),用于敏捷、高效地處理任何或小或大的項(xiàng)...
    goyohol閱讀 3,166評(píng)論 0 17
  • 先去熟悉一波git和sourcetree的基礎(chǔ)知識(shí)。 然后就開始我的git和sourcetree之旅: 幾個(gè)概念先...
    allenslife101閱讀 6,428評(píng)論 0 3
  • 1. Git相關(guān) 1.1 Git部分名詞解釋 克隆(clone):從遠(yuǎn)程倉(cāng)庫(kù)URL加載創(chuàng)建一個(gè)與遠(yuǎn)程倉(cāng)庫(kù)一樣的本地...
    瑟聞風(fēng)傾閱讀 5,757評(píng)論 0 3
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 7,543評(píng)論 0 4

友情鏈接更多精彩內(nèi)容