Java SE Development Kit 8 mac8u181 官方最中文 / 242.3M
Adobe Dreamweaver cs6 for mac官方簡體中文中文 / 405.3M
SVN管理工具(Cornerstone Mac版)v4.0 官方最英文 / 16.5M
mac PHP集成開發(fā)工具(PhpStorm)V8.0.3官方最英文 / 124.4M
蘋果SQLite數(shù)據(jù)庫管理工具(SQLiteManager f中文 / 7.9M
Mac十六進制文本編輯器(UltraEdit)18.00.0.中文 / 56.0M
Navicat Premium for macv11.1.11 官方最新中文 / 144.7M
Editplus for macV3.80 官方最新版中文 / 12M
SourceTree for mac是一款開源免費的GUI版本控制工具,這款軟件支持創(chuàng)建、克隆、提交、push、pull 和合并等操作。SourceTree for mac既有GitBash的命令行,又有EGit的圖形化管理,用戶界面很人性化,Eclipse+GitBash完全可以應付版本管理。
(1)基本的commit、pull、push都擁有,而且一旦發(fā)生錯誤的時候提示很準確。
(2)基本的分支管理業(yè)有,最挫的Egit刪除遠程分支是假刪除,SourceTree完美解決了這個問題。
(3)擁有EGit中的reset(重置)和checkout(簽出)兩大功能,而且更加穩(wěn)定。最令我懷疑的EGit的reset hard也有報錯的時候,哎。SourceTree還是很穩(wěn)定的。
(4)那么最近用SourceTree,發(fā)現(xiàn)了一個很強大的功能,就是“丟棄”這個功能,和checkout其實原理是一樣的。不過圖形化界面肯定比較方便了。
這里具體解釋一下這個功能:
換句話說,你改了一批文件,如果想提交一部分,保留一部分,無疑命令行最麻煩。
然后你不滿足,其中有幾個文件你還想回滾,不想改了。那么SourceTree最容易。
這里需要注意一下命令行中checkout 是指未add的,那么可以回滾到最近的線上的commit狀態(tài)。如果add之后又修改,那么會回滾到add之后的狀態(tài)。
這一個原理,在Source體現(xiàn)的更明顯,如下:
A.首先我先將修改后的personRiskBase.jsp拖到緩存區(qū)中(1)。
圖(1)
B.然后再次修改,發(fā)現(xiàn)下面的工作區(qū)中也有這個頁面了(圖2)。
(圖2)
C.現(xiàn)在就可以對此文件進行丟棄了,如果將下面文件丟棄(checkout),那么該文件將變?yōu)榫彌_區(qū)中的文件,如果將緩沖區(qū)文件丟棄,實際上回到了最近的commit版本了(reset操作)。
這里注意,如果該文件commit了,那么checkout實際上回不到commit之前的版本的,需要reset。下面詳細介紹一下reset命令。
(5)對于reset功能的應用。這里先普及一下Git理念的事:
A.明確一點,每一次commit都是對應著一批操作而不是對應一個文件。
這點和SVN的設計理念完全不一樣。
這也造成了一個必然的結(jié)局:SVN的分支存的是一個工程,所以每簽出一個分支實際上都是簽出一個工程。
而Git的分支存的是修改的記錄,所以每簽出一個分支,實際上都是對原工程的一次覆蓋。
B.在開發(fā)過程中大家可能會遇到這樣一個問題:Pull之后,會出現(xiàn)很多別人提交的代碼需要你本地再重新提交一次,那么這個原因是這樣的,當然這個是我個人的理解:Git會把每一次pull結(jié)果做兩個處理:
B1.如果pull之后,本地沒有任何問題,那么不需要再次提交別人修改的東西了,只需要繼續(xù)你的修改,push就可以了(正常情況下一版都是這樣)。
B2.如果pull之后,本地有問題,大部分情況是沖突的情況,那么Git會把本次當做一次不成功的pull(那么通俗的來講,git會認為,你認為不成功,那么你把這次版本按照你的想法改一下,再提交吧),所以你做完刪減之后,需要把剛才別人的東西再提一次作為一個新的commit。
(6)對于checkout某一次提交,SourceTree也很人性化,會給出很人性化的提示。注意checkout之后,你的工程當前不屬于任何分支,不過可以基于此重新創(chuàng)建一個分支,很方便。
sourcetree是免費的Git客戶端,如何利用它從gitlab上拉取下代碼呢?步驟如下:
(1)、下載并安裝git;
(2)、運行g(shù)it,生成秘鑰,
命令為:ssh-keygen -t rsa,如圖:
秘鑰生成的目錄在你系統(tǒng)盤用戶目錄下的\.ssh\id_rsa.pub
(3)、在自己的git服務器上綁定自己git公鑰;
(綁定操作:Settings --> SSH Keys --> Add key(打開本地公鑰文件粘貼里面所有內(nèi)容)),如圖:
(4)、利用sourcetree拉取代碼。
點擊"工具-->選項-->一般",注意以下4個部分的設置,如圖:
點擊確定按鈕之后,點擊"文件-->克隆/新建",打開克隆tab,如圖:
源路徑:為要拉取項目的git路徑;目標路徑:為自己要存放該項目的本地資源路徑;名字:為項目名字,一般會自動獲取填充。
點擊克隆按鈕,項目開始拉取到本地。等待項目拉取完畢后,我們就可以開始自己的本地開發(fā)。
3、上傳代碼;
項目克隆完成之后,我們拉取的是master分支上的代碼,由于master分支是主分支,項目多人開發(fā)的情況下,很容易造成沖突。
所以我們一般會在gitlab遠程新建一個自己的分支,如命名為:dev。
(1)、新建自己的遠程開發(fā)分支并在sourcetree中切換到該分支;如圖:
雙擊origin--->dev,就可以切換到dev開發(fā)分支。
(2)、切換到文件狀態(tài),暫存需要提交的代碼,寫好描述,點擊“拉取”選項(相當svn的update操作)更新代碼并點擊提交;
(3)、點擊“推送”選項,選擇正確的本地和遠程分支,確定推送(相當于svn的commit操作)。
(4)、等待項目管理員將dev分支代碼合并到master分支,完成從開發(fā)到上傳。
特別說明