1. 程式人生 > >圖解GitHub和SourceTree入門教程

圖解GitHub和SourceTree入門教程

-->本教程適用於主流的開源網站github和bitbucket,個人認為sourceTree還是比較好用的git客戶端,支援windows和mac os。

-->soureceTree的最新版本可能與此教程的screenshot有些許不同,但大同小異(sourceTree的最新版本操作上更人性化)

先安裝gitForWindows,按提示預設安裝就可臺,安裝之後才可以在命令列中用git clone命令

-->大家可以先看個關於git工作流程的視訊,先了解一下,被youku轉碼了,不太清楚,將就看吧,點這裡

-->在github上註冊一個賬號,然後登陸。

-->在github上點選create new, new repository, 隨便輸入一個專案名稱即可,注意選上init this repository with readme(不選擇也可以,事後再自己編輯),如下圖。

關於git流程,給個不錯的參考連結,點我開啟


-->如果想刪除剛建立的專案,可以,點右下角的setting,如下圖。


-->將頁面拉到最下邊,點選delete this repository,在彈出層中輸入專案名稱,點選刪除即可,如下圖。


-->現在要在本地clone出遠端的專案,在github上點選剛才建立的專案,進行專案詳情,在右下角有一塊資訊,複製https連線,如下圖


-->在本地隨便一個目錄下,輸入以下命令,git clone https://github.com/jelly-liu/MyBatisGen.git,(這裡用了一個我的開源專案做為示例),

-->我們可以看到,新建的專案除了一個readme檔案,什麼也沒有,你可以隨便將一個maven專案的內容copy到此目錄下,編譯正確後,就可以提交了,下面我們以SourceTree為例,來演示怎麼用視覺化GUI工具提交修改。

--下載並安裝SourceTree,以windows版本為例,安裝完成後,開啟sourcetree,如下圖


-->點選file-open,選擇我們剛才clone出來的專案的根目錄後,開啟後,如下圖,可以看到,branches只有一個master, 點選右邊的Uncommited changes,會顯示你所有有改動但未提交的檔案。


-->看Unstaged files這一塊內容,我們按住shift,選擇所有你要提交的檔案,然後再點滑鼠右鍵,選擇add(意思就是add到本地的索引庫),操作完成後,Staged files這塊內容就會出現我們剛才選擇的所有檔案,如下圖


-->在我們提交到本地repo前,我們先在sourcetree中設定一下通用information,當commit到本地時,這個infomation會當做通用的提交資訊,點選tool->options,在full name和email address中輸入你的github賬號資訊,如下圖


-->返回到我們剛才那一點,在Staged files中選擇要提交到本地倉庫的檔案後,點選sourcetree左上角的commit之後,會讓我們輸入comments about this commit,輸入後,點提交,可能會提示你再輸入github的使用者名稱和密碼,如下圖


-->至此,我們只是提交到了本地倉庫,最後一步就是如提交到遠端倉庫了,點選工具欄的push按鈕,就可以提交到遠端倉庫(push到遠端前,最好先從遠端pull一把)。點選pull,即可從遠端倉庫下載最新的別人提交的修改了,如下圖


-->點選push後,會讓你選擇提交到遠端倉庫的哪個分支,自己決定吧,提交到遠端倉庫後,github上就可以看到你提交的內容了,如下圖


-->在分支1上的修改可以通過cherry pick,直接將修改的程式碼commit到分支2上。

也可以在分支2上去過merge操作來獲取其它分支的commit,但是要通過intellij idea去進行merge。

注意cherry pick只用直接取到你本次提交的程式碼,另人在你提交之前的提交不會搞過來,而merge則會把你提交前別人提交也也搞過來。

intellij ide操作如下圖:


-->sourcetree左邊欄的Branches,可以隨便刪除,再重新從Remotes中選擇你要check out的分支,clone到本地倉庫。

-->對於當前的所有本地改動,都可以用Stash功能將改動暫時儲存,在任何時候都可以進行apply stash to current work branch。

-->至此,githut和sourcetree的使用,就結束了,工具只是方便大眾化,不排斥只用command line操作,自己玩吧。。。