日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Git管理工具对比(GitBash、EGit、SourceTree)(转载)

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git管理工具对比(GitBash、EGit、SourceTree)(转载) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Git管理工具對(duì)比(GitBashEGitSourceTree

GitBash是采用命令行的方式對(duì)版本進(jìn)行管理,功能最為靈活強(qiáng)大,但是由于需要手動(dòng)輸入希望修改的文件名,所以相對(duì)繁瑣。

EGitEclipseGit插件,最為糾結(jié)的一個(gè)軟件,因?yàn)殚_(kāi)發(fā)時(shí)直操作很方便,尤其是有svn開(kāi)發(fā)情節(jié)的人更熱衷于這樣,不過(guò)EGit中有很多bug和不人性化的東西,讓人吐血,所以

一句話EGit并不能解決所有Git問(wèn)題,開(kāi)發(fā)時(shí)必須部分依賴于其他Git管理工具。一會(huì)一一列舉。

SourceTree是最近應(yīng)用的一個(gè)軟件,一句話概括,既有GitBash的命令行,又有EGit的圖形化管理,用戶界面很人性化,Eclipse+GitBash完全可以應(yīng)付版本管理。

那么下面我結(jié)合項(xiàng)目中開(kāi)發(fā)遇到的問(wèn)題一一講解一下:

?

<>EGit之我見(jiàn):

EGit最大的好處是集成在eclipse里面,對(duì)于代碼修改后提交很方便,其中我最常使用的部分是:

(1)簡(jiǎn)單的Commitpullpush

(2)Git?repository(看資源庫(kù)視圖)(包括新建分支,切分支,合并分支)

(3)工程reset?hard(強(qiáng)制覆蓋本地版本),一些特殊情況會(huì)有問(wèn)題。

(4)工程checkout到某一個(gè)分支,可以看當(dāng)時(shí)的文件。

(5)工程show?in?history?(查看工程變更歷史),沒(méi)有時(shí)分秒,很不爽。

?

其他的功能我用的不多,因?yàn)?span style="font-family:'Times New Roman';">EGit確實(shí)有很多bug,犯過(guò)血淋淋的錯(cuò)誤。

這里解釋一下,為什么第一條我要加上”簡(jiǎn)單的”,因?yàn)楹芏鄷r(shí)候沒(méi)有pull下來(lái),或者沒(méi)有push上去,提示的信息很粗,有時(shí)候甚至誤以為提交,發(fā)現(xiàn)過(guò)很多問(wèn)題,所以如果確定現(xiàn)在沒(méi)人和你同時(shí)改同一個(gè)文件,用EGit還是很爽的。

?

<>GitBash之我見(jiàn):

?

一般我主要通過(guò)命令行進(jìn)行pull?push?還有?status的操作,這個(gè)詳見(jiàn)我前一篇文章

《Git?Bash+EGit在項(xiàng)目中配合使用最常用方法總結(jié)》,命令行用好了很是很不錯(cuò)的,除了那種需要手寫文件名的時(shí)候,比較不爽,一兩個(gè)還可以,多了就吐血了。

?

<>SourceTree之我見(jiàn):

這個(gè)是我最近才發(fā)現(xiàn)了一個(gè)很好的工具SourceTree,可以說(shuō)SourceTreeEGitGitBash的合體,既有圖形化界面又有git命令行。

(1)基本的commit、pull、push都擁有,而且一旦發(fā)生錯(cuò)誤的時(shí)候提示很準(zhǔn)確。

(2)基本的分支管理業(yè)有,最挫的Egit刪除遠(yuǎn)程分支是假刪除,SourceTree完美解決了這個(gè)問(wèn)題。

(3)擁有EGit中的reset(重置)和checkout(簽出)兩大功能,而且更加穩(wěn)定。最令我懷疑的EGitreset?hard也有報(bào)錯(cuò)的時(shí)候,哎。SourceTree還是很穩(wěn)定的。

(4)?那么最近用SourceTree,發(fā)現(xiàn)了一個(gè)很強(qiáng)大的功能,就是“丟棄”這個(gè)功能,和checkout其實(shí)原理是一樣的。不過(guò)圖形化界面肯定比較方便了。這里具體解釋一下這個(gè)功能:

?

換句話說(shuō),你改了一批文件,如果想提交一部分,保留一部分,無(wú)疑命令行最麻煩。

然后你不滿足,其中有幾個(gè)文件你還想回滾,不想改了。那么SourceTree最容易。

這里需要注意一下命令行中checkout?是指未add的,那么可以回滾到最近的線上的commit狀態(tài)。如果add之后又修改,那么會(huì)回滾到add之后的狀態(tài)。

這一個(gè)原理,在Source體現(xiàn)的更明顯,如下:

A.?首先我先將修改后的personRiskBase.jsp拖到緩存區(qū)中(1)。

圖(1

?

?

B.?然后再次修改,發(fā)現(xiàn)下面的工作區(qū)中也有這個(gè)頁(yè)面了(圖2)。

(圖2

?

C.?現(xiàn)在就可以對(duì)此文件進(jìn)行丟棄了,如果將下面文件丟棄(checkout),那么該文件將變?yōu)榫彌_區(qū)中的文件,如果將緩沖區(qū)文件丟棄,實(shí)際上回到了最近的commit版本了(reset操作)。

這里注意,如果該文件commit了,那么checkout實(shí)際上回不到commit之前的版本的,需要reset。下面詳細(xì)介紹一下reset命令。

?

(5) 對(duì)于reset功能的應(yīng)用。這里先普及一下Git理念的事:

A.?明確一點(diǎn),每一次commit都是對(duì)應(yīng)著一批操作而不是對(duì)應(yīng)一個(gè)文件。

這點(diǎn)和SVN的設(shè)計(jì)理念完全不一樣。

這也造成了一個(gè)必然的結(jié)局:SVN的分支存的是一個(gè)工程,所以每簽出一個(gè)分支實(shí)際上都是簽出一個(gè)工程。

Git的分支存的是修改的記錄,所以每簽出一個(gè)分支,實(shí)際上都是對(duì)原工程的一次覆蓋。

B.在開(kāi)發(fā)過(guò)程中大家可能會(huì)遇到這樣一個(gè)問(wèn)題:Pull之后,會(huì)出現(xiàn)很多別人提交的代碼需要你本地再重新提交一次,那么這個(gè)原因是這樣的,當(dāng)然這個(gè)是我個(gè)人的理解:Git會(huì)把每一次pull結(jié)果做兩個(gè)處理:

B1.如果pull之后,本地沒(méi)有任何問(wèn)題,那么不需要再次提交別人修改的東西了,只需要繼續(xù)你的修改,push就可以了(正常情況下一版都是這樣)。

B2.如果pull之后,本地有問(wèn)題,大部分情況是沖突的情況,那么Git會(huì)把本次當(dāng)做一次不成功的pull(那么通俗的來(lái)講,git會(huì)認(rèn)為,你認(rèn)為不成功,那么你把這次版本按照你的想法改一下,再提交吧),所以你做完刪減之后,需要把剛才別人的東西再提一次作為一個(gè)新的commit

?

(6)?對(duì)于checkout某一次提交,SourceTree也很人性化,會(huì)給出很人性化的提示。注意checkout之后,你的工程當(dāng)前不屬于任何分支,不過(guò)可以基于此重新創(chuàng)建一個(gè)分支,很方便。

?

總結(jié)一下:這里只列出了一些關(guān)鍵的問(wèn)題和不同點(diǎn),當(dāng)然工具的選擇因人而異。大家可以在工作中慢慢體會(huì),如果有問(wèn)題歡迎大家提出,給我寶貴的意見(jiàn)。(待續(xù))

轉(zhuǎn)載于:https://www.cnblogs.com/draem0507/p/3896979.html

總結(jié)

以上是生活随笔為你收集整理的Git管理工具对比(GitBash、EGit、SourceTree)(转载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。