使用SourceTree上傳項(xiàng)目到GitHub其實(shí)是非常簡(jiǎn)單的。
準(zhǔn)備工作
- 注冊(cè)一個(gè)GitHub賬號(hào)
- 下載SourceTree客戶端
SourceTree簡(jiǎn)介
在安裝好SourceTree打開后的主頁(yè)面如下圖所示(UpdateToGitHubTest是我新添加的),可操作的地方有新倉(cāng)庫(kù)和設(shè)置。

首先我們可以點(diǎn)擊右上角的設(shè)置進(jìn)入設(shè)置頁(yè)面。

在設(shè)置頁(yè)面把自己的GitHub賬號(hào)添加進(jìn)去,添加好之后,你的SourceTree客戶端就跟你的GitHub賬戶關(guān)聯(lián)起來了。

回到主頁(yè)面可以查看新倉(cāng)庫(kù)下面一共有五個(gè)選項(xiàng),如下圖所示:

下面就來說一下本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)兩個(gè)概念:
- 本地倉(cāng)庫(kù):顧名思義是本地的倉(cāng)庫(kù),在這里,你可以把一個(gè)項(xiàng)目設(shè)為本地倉(cāng)庫(kù),本地倉(cāng)庫(kù)主要用于管理當(dāng)前電腦本地的項(xiàng)目。
- 遠(yuǎn)程倉(cāng)庫(kù):是你的GitHub賬戶中創(chuàng)建的倉(cāng)庫(kù),主要用于管理GitHub中的項(xiàng)目。
本地倉(cāng)庫(kù)只能從這里創(chuàng)建,遠(yuǎn)程倉(cāng)庫(kù)既可以從這里創(chuàng)建,也可以在網(wǎng)頁(yè)/GitHub客戶端創(chuàng)建
在主頁(yè)面中的本地和遠(yuǎn)端分別展示了本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)列表(遠(yuǎn)程倉(cāng)庫(kù)頁(yè)面可以command + R刷新)

克隆:可以認(rèn)為是拷貝,就是將遠(yuǎn)程倉(cāng)庫(kù)中的項(xiàng)目拷貝一份到本地。
打開本地倉(cāng)庫(kù)的一個(gè)項(xiàng)目,進(jìn)入到項(xiàng)目主頁(yè)面,如下圖:

這里大概看一下有個(gè)印象即可,詳細(xì)的在后文會(huì)進(jìn)行介紹。
使用SourceTree上傳本地項(xiàng)目到GitHub
方法A
1. 新建遠(yuǎn)程倉(cāng)庫(kù)
打開GitHub官網(wǎng)并登陸,新建倉(cāng)庫(kù)如下圖:



點(diǎn)擊右側(cè)綠色按鈕Clone or download復(fù)制鏈接(第二步用)

2. 克隆遠(yuǎn)程倉(cāng)庫(kù)至本地
打開SourceTree主頁(yè),點(diǎn)擊新倉(cāng)庫(kù)并選擇從URL克隆


克隆成功后在SourceTree主頁(yè)面多出一個(gè)Test1的本地倉(cāng)庫(kù),并且在剛剛選擇的路徑下面多出一個(gè)Test1的項(xiàng)目文件夾,如下圖:

3. 修改本地倉(cāng)庫(kù)并提交同步遠(yuǎn)程倉(cāng)庫(kù)
接下來我在本地倉(cāng)庫(kù)Test1的項(xiàng)目文件夾下創(chuàng)建一個(gè)名為tt.py的文件夾,如下圖:

打開SourceTree,進(jìn)入Test1本地倉(cāng)庫(kù)主頁(yè)面




刷新之前的GitHub網(wǎng)頁(yè),查看是否同步成功,如下圖:

方法B
1. 新建遠(yuǎn)程倉(cāng)庫(kù)
新建遠(yuǎn)程倉(cāng)庫(kù)除了方法A的1方法外,還可以直接使用SourceTree來創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)。


打開GitHub網(wǎng)頁(yè),進(jìn)入Repositories,即可看到新增的遠(yuǎn)程倉(cāng)庫(kù)Test2,如下圖:

2. 創(chuàng)建本地倉(cāng)庫(kù)
這里我新建了一個(gè)空的項(xiàng)目,并將其作為本地倉(cāng)庫(kù)。操作如下:


3. 關(guān)聯(lián)本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)并同步代碼
打開新建的本地倉(cāng)庫(kù)主頁(yè)面,如下圖:

點(diǎn)擊右上角設(shè)置按鈕,進(jìn)入設(shè)置頁(yè)面,如下圖:



回到當(dāng)前本地倉(cāng)庫(kù)主頁(yè)面,點(diǎn)擊最初版本并推送同步代碼至遠(yuǎn)程倉(cāng)庫(kù),如下圖:



打開GitHub網(wǎng)頁(yè)并刷新,即可看到代碼已經(jīng)同步至遠(yuǎn)程倉(cāng)庫(kù),如下圖:

使用SourceTree上傳本地項(xiàng)目到GitHub的介紹就到此為止了。
SourceTree部分詞匯介紹
- 克隆(clone):從遠(yuǎn)程倉(cāng)庫(kù)URL加載創(chuàng)建一個(gè)與遠(yuǎn)程倉(cāng)庫(kù)一樣的本地倉(cāng)庫(kù)。
- 提交(commit):將暫存文件上傳到本地倉(cāng)庫(kù)(我們?cè)诒镜貍}(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ù)獲取是否有新數(shù)據(jù)需要拉取(多人開發(fā)),如果沒有新改變,可以跳過拉取直接執(zhí)行推送(push)操作(為了保持本地倉(cāng)庫(kù)和遠(yuǎn)程倉(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)前先拉取(pull)一次,確保一致。
- 分支(branch):創(chuàng)建/修改/刪除分支
- 標(biāo)簽(tag):給項(xiàng)目新增標(biāo)簽
- 工作流(Git Flow):團(tuán)隊(duì)工作時(shí),每個(gè)人創(chuàng)建屬于自己的分支(branch),確定無(wú)誤后提交到master分支
- 終端(terminal):可以輸入git命令行
結(jié)尾
如有不對(duì)的地方,歡迎大家指出。謝謝