-->本教程适用于主流的開源網站github和bitbucket,個人認為sourcetree還是比較好用的git用戶端,支援windows和mac os。
-->sourecetree的最新版本可能與此教程的screenshot有些許不同,但大同小異(sourcetree的最新版本操作上更人性化)
-->在github上注冊一個賬号,然後登陸。
-->在github上點選create new, new repository, 随便輸入一個項目名稱即可,注意選上init this repository with readme(不選擇也可以,事後再自己編輯),如下圖。
-->如果想删除剛建立的項目,可以,點右下角的setting,如下圖。
-->将頁面拉到最下邊,點選delete this repository,在彈出層中輸入項目名稱,點選删除即可,如下圖。
-->現在要在本地clone出遠端的項目,在github上點選剛才建立的項目,進行項目詳情,在右下角有一塊資訊,複制https連接配接,如下圖
-->在本地随便一個目錄下,輸入以下指令,git clone https://github.com/collonn/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操作,自己玩吧。。。