sourceTree安裝和使用(windows)


 SourceTree的簡介  

      SourceTree 是 Windows 和Mac OS X 下免費的 Git 和 Hg 客戶端,擁有可視化界面,容易上手操作。同時它也是Mercurial和Subversion(SVN)版本控制系統工具。支持create、commit、clone、push、pull 和merge等操作, sourceTree表面上是git的圖形界面工具,其實它的底層還是用的一些git命令 ,可以使用git commit,git update,git push等命令。

 

GIT代碼管理平台:

      開源中國上的托管的代碼管理平台很好用,適合管理代碼,但是對於一些代碼保密或者不方便放到公網上的代碼來說,還是需要在自己公司的內網搭建一個GIT代碼管理平台。
1、Gitolite 該代碼平台是基於Linux操作的,一方面搭建起來很麻煩,另一方權限控制起來麻煩,每次新來人員需要將安裝GIT之后的pub文件發送給管理員,這樣會增加了管理員和git搭建人員的麻煩。
2、Gitblit 是一個純 Java 庫用來管理、查看和處理 Git 資料庫.相當於 Git 的 Java 管理工具.git的管家.
一方面它有基於windows的安裝版本,安裝過程只需下一步即可,很方便。
另一方面他是一個git代碼管理平台,統一管理用戶,分配權限,同時可以查看版本庫的tag和分支情況。

 

SourceTree和Git名稱解釋

克隆(clone):從遠程倉庫URL加載創建一個與遠程倉庫一樣的本地倉庫

提交(commit):將暫存文件上傳到本地倉庫(我們在Finder中對本地倉庫做修改后一般都得先提交一次,再推送)

檢出(checkout):切換不同分支

添加(add):添加文件到緩存區

移除(remove):移除文件至緩存區

貯藏(git stash):保存工作現場

重置(reset):回到最近添加(add)/提交(commit)狀態

合並(merge):將多個同名文件合並為一個文件,該文件包含多個同名文件的所有內容,相同內容抵消

抓取(fetch):從遠程倉庫獲取信息並同步至本地倉庫

拉取(pull):從遠程倉庫獲取信息並同步至本地倉庫,並且自動執行合並(merge)操作,即 pull=fetch+merge

推送(push):將本地倉庫同步至遠程倉庫,一般推送(push)前先拉取(pull)一次,確保一致

分支(branch):創建/修改/刪除分枝

標簽(tag):給項目增添標簽

工作流(Git Flow): 團隊工作時,每個人創建屬於自己的分枝(branch),確定無誤后提交到master分支。

 

SourceTree下載與安裝

1、下載地址:https://www.sourcetreeapp.com/,該版本是中文的,下載完成后可以進行安裝。

2、下載完畢,雙擊打開,由於我的電腦缺少.NET Framework 4.7.1,會報錯少了.NET Framework 4.7.1,少什么就安裝什么就好了。

3、雙擊打開sourcetree,如圖:

4、注意:1使用谷歌帳號登錄即可,前提是你必須可以上谷歌才可以。所以在登錄谷歌賬號之前,需要下載全局FQ工具Shado~wsocks並使用FQ工具。

5、不想設置SSH密鑰可暫時不弄,點擊【否】,然后就可以開始使用sourcetree了。這里有個設置SSH密鑰的鏈接(SSH密鑰是在github弄的):https://blog.csdn.net/baidu_30809315/article/details/76687063

就這樣sourcetree可以使用了。

 

SourceTree基本使用——克隆

(1)克隆(開發人員需要做的)

點擊克隆按鈕,克隆項目:
既可以是本地已有的git項目,也可以是遠程目錄中的項目。

本地存在的git項目,獲取項目克隆地址,點擊克隆按鈕,

1、克隆項目的路徑
2、克隆項目存放的位置
3、如果要下載特定的分支,可以按分支進行下載

 

(2)克隆遠程倉庫到本地(在GitHub上創建遠程倉庫的情況下)

2.1 復制Url鏈接

2.2 打開sourceTree, clone至本地倉庫

2.3 點擊【克隆】,就把遠程倉庫的項目克隆到本地進行開發了。

 

SourceTree基本使用——創建遠程倉庫

(3)創建GitHub遠程倉庫(項目負責人需要做的)。GitHub網址:https://github.com/

下圖是我個人的github,以前有上傳一些小demo在上面。

1.1 去 github官網注冊或者登錄github賬號。

1.2 初始化一個版本庫

1.3點擊【NEW resposity】

1.4填寫信息,如圖,提交。一個簡單的版本庫就創建完畢了。

SourceTree基本使用——拉取遠程倉庫

(4)拉取遠程倉庫。

 

SourceTree基本使用——獲取遠程倉庫

(5)獲取遠程倉庫。

 

SourceTree基本使用——提交本地修改

(6)提交本地修改。

 

SourceTree基本使用——推送代碼到遠程倉庫

(7)推送到遠程倉庫。

 

SourceTree基本使用——創建、刪除、合並分支

(8)創建本地分支和刪除分支、合並分支。

 

SourceTree基本使用——丟棄更改

(9)丟棄更改

 

SourceTree基本使用——添加tag

(10)添加tag。打tag的目的是在代碼的master分支處有個標記,方便下次修改代碼時可以准確的找到想要找的代碼。而無需看着日志文件逐一回憶要找的代碼位置。

 

SourceTree基本使用——暫存更改

(11)暫存更改。可用來暫存當前正在進行的工作,比如想拉取最新代碼,又不想加新提交,或者另外一種情況,為了fix一個緊急的bug,  先貯藏,使返回到自己上一個提交, 改完bug之后再恢復貯藏區, 繼續原來的工作。

 

SourceTree基本使用——解決沖突

(12)解決沖突。

第一種方法:git使用<<<<<<<,=======,>>>>>>>標記文件中自己和別人產生沖突的部分。

在<<<<<<<,=======之間為自己的代碼;
=======,>>>>>>>之間為別人的代碼。

自動合並沖突結束后,進入文件刪掉沖突的部分,然后重新提交,推送。

 

第二種方法: Sourcetree中集成Beyond Compare 4,當文件沖突時可以很好的解決沖突。安裝過程很簡單,這里不再詳述。

在sourceTree中配置Beyond Compare 4如下截圖:

 

 

SourceTree基本使用——忽略配置文件

(13)忽略配置文件。

利用.gitignore過濾文件,如編譯過程中的中間文件等等,這些文件不需要被追蹤管理。
.gitignore文件只對還沒有加入版本管理的文件起作用,如果之前已經用git把這些文件納入了版本庫,就不起作用了
使用sourcetree添加忽略文件的方法:
正常情況下,管理員創建項目后需要直接將忽略文件創建好。創建方法如圖:

 

SVN與GIT的區別

1.GIT是分布式的,SVN不是,這是GIT和其它非分布式的版本控制系統,例如SVN,CVS等,最核心的區別。
解釋:
a GIT跟SVN一樣有自己的集中式版本庫或服務器。但,GIT更傾向於被使用於分布式模式,也就是每個開發人員從中心版本庫/服務器上chect out代碼后會在自己的機器上克隆一個自己的版本庫。可以這樣說,如果你被困在一個不能連接網絡的地方時,就像在飛機上,地下室,電梯里等,你仍然能夠提交文件,查看歷史版本記錄,創建項目分支,等。對一些人來說,這好像沒多大用處,但當你突然遇到沒有網絡的環境時,這個將解決你的大麻煩。
b 這種分布式的操作模式對於開源軟件社區的開發來說也是個巨大的恩賜,你不必再像以前那樣做出補丁包,通過email方式發送出去,你只需要創建一個分支,向項目團隊發送一個推請求。這能讓你的代碼保持最新,而且不會在傳輸過程中丟失。GitHub.com就是一個這樣的優秀案例。


2.GIT把內容按元數據方式存儲,而SVN是按文件
所有的資源控制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因為,.git目錄是處於你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標簽,分支,版本記錄等。

3.分支,該特點是GIT的有一個核心功能;這個功能對開源社區的奉獻很大;對項目實際開發意義很大;同一個工作目錄下快速的在幾個分支間切換。你很容易發現未被合並的分支,你能簡單而快捷的合並這些文件。在SVN,分支是一個完整的目錄。且這個目錄擁有完整的實際文件。如果工作成員想要開啟新的分支,那將會影響“全世界”!每個人都會擁有和你一樣的分支。如果你的分支是用來進行破壞工作(安檢測試),那將會像傳染病一樣,你改一個分支,還得讓其他人重新切分支重新下載,十分狗血。而 Git,每個工作成員可以任意在自己的本地版本庫開啟無限個分支。舉例:當我想嘗試破壞自己的程序(安檢測試),並且想保留這些被修改的文件供日后使用, 我可以開一個分支,做我喜歡的事。完全不需擔心妨礙其他工作成員。只要我不合並及提交到主要版本庫,沒有一個工作成員會被影響。等到我不需要這個分支時, 我只要把它從我的本地版本庫刪除即可。無痛無癢。


4.GIT沒有一個全局的版本號,而SVN有:
目前為止這是跟SVN相比GIT缺少的最大的一個特征。你也知道,SVN的版本號實際是任何一個相應時間的源代碼快照。我認為它是從CVS進化到SVN的最大的一個突破。因為GIT和SVN從概念上就不同,我不知道GIT里是什么特征與之對應。

5.GIT的內容完整性要優於SVN:
GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞。這里有一個很好的關於GIT內容完整性的討論 –http://stackoverflow.com/questions/964331/git-file-integrity

 

6.代碼庫占極少的空間。易於代碼的分支化管理。目前支持中文,已經有成熟的圖形化管理界面工具,使用難度小。
最后總結一下:
SVN的特點是簡單,只是需要一個放代碼的地方時用是OK的。

 

小結

使用sourcetree的前提要求:

1、有谷歌賬號和密碼

2、有GitHub賬號和密碼,配置SSH密鑰

3、有FQ工具,連接外網

4、安裝sourcetree和git以及一些需要的插件

 

題外篇:

不需要FQ的一篇鏈接:https://blog.csdn.net/sinat_38334334/article/details/80665191

 

sourceTree官網的介紹使用鏈接:

https://confluence.atlassian.com/get-started-with-sourcetree?_ga=2.258073802.1185428370.1532309129-219782296.1532309129

 

設置SSH密鑰的鏈接(SSH密鑰是在github弄的):

https://blog.csdn.net/baidu_30809315/article/details/76687063

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM