摘要:快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E這個時候,我們需要指定一個版本,比如是別人的版本爲準,還是我的版本,隨後右鍵文件選擇 解決衝突使用我的版本(左側欄選擇文件狀態-》工作副本)\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F8fd4ad1624c54be4a2757839326de17f\" img_width=\"600\" img_height=\"457\" alt=\"你確定能記住那麼多git命令嗎。快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E按文件打開歷史版本\u003C\u002Fp\u003E\u003Cp\u003E有些時候,我們也需要查看文件的歷史版本,這裏可以選中節點後,選擇那個變更文件,右鍵 打開歷史版本\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F0d64971e9bbd45dfa5e63be3897c4022\" img_width=\"417\" img_height=\"295\" alt=\"你確定能記住那麼多git命令嗎。

"\u003Cdiv\u003E\u003Cblockquote\u003E\u003Cp\u003E專注於Java領域優質技術,歡迎關注\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F4b7eadd416324ef5a7fddfcc2eefe077\" img_width=\"646\" img_height=\"400\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E原文:https:\u002F\u002Fjuejin.im\u002Fentry\u002F59c8b49af265da066f6ab512\u003C\u002Fp\u003E\u003Ch1\u003E前言\u003C\u002Fh1\u003E\u003Cblockquote\u003E\u003Cp\u003E作爲使用Sourcetree大於3年的我,已熟知git的每一個功能,並靈活運用利用git解決開發中各式各樣的場景問題,我也曾多次在公司內部不同小組間分享Sourcetree使用經驗,接下來給大家分享下這款工具吧。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E\u003Cstrong\u003E本文可能是目前網上最全的一篇可視化使用git工具Sourcetree文章。\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E可能對於很多開發來說,只要搞懂git的push、pull、解決一些簡單的衝突命令就好了,事實上git的功能十分強大,而通過背命令很難熟記每個邏輯。\u003C\u002Fp\u003E\u003Cp\u003E當然不同的ide開發環境都有各種各樣的git插件,操作方法各不相同,不如直接學個跨平臺,不受ide限制的git管理工具Sourcetree。不管你做java,還是python、Android都可以使用。\u003C\u002Fp\u003E\u003Ch1\u003E介紹\u003C\u002Fh1\u003E\u003Cp\u003E官方介紹如下:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003EA free Git client for Windows and Mac.\u003C\u002Fp\u003E\u003Cp\u003ESourcetree simplifies how you interact with your Git repositories so you can focus on coding. Visualize and manage your repositories through Sourcetree's simple Git GUI.\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E譯文:\u003C\u002Fp\u003E\u003Cp\u003E一款強大的Windows和Mac的免費Git客戶端\u003C\u002Fp\u003E\u003Cp\u003Esourcetree簡化你如何與你的Git存儲庫使您可以專注於編碼。可視化和通過Sourcetree簡單的git GUI管理你的知識庫。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003E一點坑\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E下載\u003Ca class=\"pgc-link\" href=\"https:\u002F\u002Fwww.sourcetreeapp.com\u002F\" target=\"_blank\"\u003Ehttps:\u002F\u002Fwww.sourcetreeapp.com\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E這款軟件是免費的,但是需要註冊,登錄授權;登錄和授權這兩個步驟沒啥問題,但對於註冊需要科學上網才能註冊的了。\u003C\u002Fp\u003E\u003Ch1\u003E一些場景\u003C\u002Fh1\u003E\u003Cp\u003E我大概把一些git高階的應用場景和大家分享下:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E一個項目含開發分支、集成分支、集成分支(穩定版)、生產環境分支等\u003C\u002Fli\u003E\u003Cli\u003E一個項目含base分支,按功能分配到各個分支,各個開發管理(十來個分支),集成分支、生產環境分支。(那十來個分支內只有自己模塊的代碼)\u003C\u002Fli\u003E\u003Cli\u003E一款產品一個主分支,對於每個公司實施均有個性化需求,且需求很難以插件形式實施,或者插件形式也需要各種個性化修改的插件,則對於每個項目實施對應每個分支。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E這裏,我先簡單描述這幾種使用場景,具體內容,後面會逐步介紹。\u003C\u002Fp\u003E\u003Cp\u003E欣賞下git分支:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F9cea522b64c44d9e834c6fbf877492e5\" img_width=\"368\" img_height=\"600\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Ch1\u003E常見用法\u003C\u002Fh1\u003E\u003Cp\u003E本文會綜合Windows環境和mac環境一起講,但在兩個平臺下界面或名詞還是有少許差異,本文會盡可能的說明。\u003C\u002Fp\u003E\u003Cp\u003E添加倉庫\u003C\u002Fp\u003E\u003Cp\u003Emac下從url克隆\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F305fac96982d4c399954ad155e14c1cc\" img_width=\"481\" img_height=\"246\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003Egit remote add orgin http:\u002F\u002F10.10.100.6:3000\u002Fsl\u002Fshaolei.git\u003C\u002Fp\u003E\u003Cp\u003Ewindows下從url克隆\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F1dc0f2574def4459b0bae5147177bdf9\" img_width=\"600\" img_height=\"457\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E抓取、獲取分支信息\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003E抓取\u003C\u002Fstrong\u003E(mac下的名字)\u003Cstrong\u003E獲取\u003C\u002Fstrong\u003E(Windows下的名字)指獲取服務端git庫的變更信息,比如落後幾個版本,超前幾個版本,我們平常多人協作的項目,提交代碼前需要先獲取一下,如果服務端有新的提交,再拉取下別人的更改,可以減少代碼衝突。(\u003Cstrong\u003E菜單欄\u003C\u002Fstrong\u003E)\u003C\u002Fp\u003E\u003Cp\u003E拉取代碼\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fee456920b18048c5b563a8c1e00175b9\" img_width=\"600\" img_height=\"403\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E$ git fetch\u003C\u002Fp\u003E\u003Cp\u003E$ git merge orgin\u002Fmaster\u003C\u002Fp\u003E\u003Cp\u003E我先將界面分爲 \u003Cstrong\u003E菜單欄\u003C\u002Fstrong\u003E、\u003Cstrong\u003E左側欄\u003C\u002Fstrong\u003E、\u003Cstrong\u003E文件欄\u003C\u002Fstrong\u003E、\u003Cstrong\u003E變更欄\u003C\u002Fstrong\u003E、\u003Cstrong\u003E底部欄\u003C\u002Fstrong\u003E以方便下文介紹。\u003C\u002Fp\u003E\u003Cp\u003E直接點擊菜單欄的\u003Cstrong\u003E拉取\u003C\u002Fstrong\u003E按鈕即可將遠程代碼變更拉取到本地。\u003C\u002Fp\u003E\u003Cp\u003E提交代碼:\u003C\u002Fp\u003E\u003Cp\u003E1.正常提交\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E首先將未暫存的文件選中,點擊後面的暫存所選;或者直接點擊暫存所有。(\u003Cstrong\u003E文件欄\u003C\u002Fstrong\u003E)\u003C\u002Fli\u003E\u003Cli\u003E在下方文本框輸入本次代碼變動的說明。(\u003Cstrong\u003E底部欄\u003C\u002Fstrong\u003E)\u003C\u002Fli\u003E\u003Cli\u003Esourcetree默認不會推送到遠程倉庫,打勾立即推送變更到origin。(\u003Cstrong\u003E底部欄\u003C\u002Fstrong\u003E)\u003C\u002Fli\u003E\u003Cli\u003E點提交即可(如果沒有打勾立即推送變更到遠程,還需手動點擊\u003Cstrong\u003E菜單欄\u003C\u002Fstrong\u003E的推送)\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F9d88ad3147c245188d142c15a6d6eac7\" img_width=\"600\" img_height=\"94\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E這裏我模擬一些變更,隨便改點代碼,然後保存,再次回到提交界面。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F5575ae3338944909ad79f4a0b11879af\" img_width=\"600\" img_height=\"446\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E\u003Cstrong\u003E變更欄\u003C\u002Fstrong\u003E會包含本次所有變更,其中\u003Cstrong\u003E+\u003C\u002Fstrong\u003E代表本次增加行;\u003Cstrong\u003E-\u003C\u002Fstrong\u003E代表本次刪除行;前面2個行號依次代碼變更前行號,變更後的行號。\u003C\u002Fp\u003E\u003Cp\u003E爲了保證代碼變更儘可能的少,我們需要丟棄一些無意義的變更,如153行的刪了一行<dt><\u002Fdt>,隨後又增加了一行<dt><\u002Fdt>,造成這種現象一般是代碼格式化或者不小心增加了某些空格等不可見字符導致,我們可以直接選中那2行,然後點擊上方的丟棄行。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fcbf041e24d6c4e9f9dfd66f7cc3c1011\" img_width=\"446\" img_height=\"406\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E需要注意的是,丟棄不等於刪除,丟棄所丟的東西是那一行的變更,比如是\u003Cstrong\u003E+\u003C\u002Fstrong\u003E號,那麼丟掉代表不增加這一行,減號\u003Cstrong\u003E-\u003C\u002Fstrong\u003E同理丟的是不刪除這一行,也就是恢復這一行。\u003C\u002Fp\u003E\u003Cp\u003Esourcetree會把所有的變更以區塊來分組,所以如果是整個區塊的變更都沒有意義,可直接丟棄整個塊,如圖:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F32112efe7c1e49c389fdebaf684c9d39\" img_width=\"476\" img_height=\"294\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E隨後暫存所選提交(\u003Cstrong\u003E文件欄\u003C\u002Fstrong\u003E)暫存代碼\u003C\u002Fp\u003E\u003Cp\u003E暫存和丟棄類似,是將代碼片段暫存到本地暫存區 以備提交,提交時所提交的代碼就是暫存區的代碼。\u003C\u002Fp\u003E\u003Cp\u003E當我們某個功能已經實現了,但是又想優化一下代碼,可又擔心等會沒優化成功,此時的代碼丟失,如果沒有git之前,我們可能會備份一份代碼,這裏只需要暫存代碼即可。暫存後,正常修改,後續的變更會出現在未暫存文件中的變更欄中。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F9551b75cc20f4fb38de06a0b653db0f1\" img_width=\"600\" img_height=\"289\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E此時無論是丟棄,還是繼續暫存都是基於上次已暫存的文件。\u003C\u002Fp\u003E\u003Cp\u003E當然,你也可以\u003Cstrong\u003E提交代碼\u003C\u002Fstrong\u003E,來實現類似功能。1.解決衝突\u003C\u002Fp\u003E\u003Cp\u003E當我和別人改了相同文件的相同行時,(大部分我們多人改變了一個文件,git都會幫我們處理掉,自動合併,但是當改變同一文件的相同行時,在拉取時就會有衝突)如圖\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Ff0bd099f9328463abb62f447637d5cd6\" img_width=\"600\" img_height=\"273\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E我們可以先將我們代碼\u003Cstrong\u003E貯藏\u003C\u002Fstrong\u003E起來(\u003Cstrong\u003E菜單欄\u003C\u002Fstrong\u003E),然後再拉取代碼,接着應用貯藏,應用後衝突的文件會顯示出來$ git stash\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Ff3b9024c31ce41e58f99f14b9ed98e07\" img_width=\"457\" img_height=\"332\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E這個時候,我們需要指定一個版本,比如是別人的版本爲準,還是我的版本,隨後右鍵文件選擇 解決衝突使用我的版本(左側欄選擇文件狀態-》工作副本)\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F8fd4ad1624c54be4a2757839326de17f\" img_width=\"600\" img_height=\"457\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E變更欄可以看到updated upstream 是別人改的版本,+====下面我改的版本。\u003C\u002Fp\u003E\u003Cp\u003E如果遠程和本地都有問題,建議打開ide工具編輯後提交。新開分支\u003C\u002Fp\u003E\u003Cp\u003E在項目中,我們可能分爲開發分支、集成分支、生成環境分支等,這時我們只需要在某個節點上右鍵選擇\u003Cstrong\u003E分支\u003C\u002Fstrong\u003E即可\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F661898a90b8441509f2917e576b6aa34\" img_width=\"600\" img_height=\"260\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe8cf332f6e9249eab1ecc7a7164b97c4\" img_width=\"591\" img_height=\"213\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E推送分支\u003C\u002Fp\u003E\u003Cp\u003E新開的分支不會在遠程顯示,所以需要將分支推送到遠程。\u003C\u002Fp\u003E\u003Cp\u003E$ git push orgin 測試分支\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F101ad69164904492a956cdb554863b79\" img_width=\"467\" img_height=\"415\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E切換分支\u003C\u002Fp\u003E\u003Cp\u003E$ git checkout 3e1e7fc\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fdb25cb42f93f45ddbffc6fae0331e3fd\" img_width=\"269\" img_height=\"457\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E需要切換到不通分支時,直接雙擊分支。拉取遠程分支\u003C\u002Fp\u003E\u003Cp\u003E和切換分支類似,雙擊遠程分支即可。\u003C\u002Fp\u003E\u003Cp\u003E回滾提交\u003C\u002Fp\u003E\u003Cp\u003E有些時候,我們提交的代碼有問題,需要回滾回去。\u003C\u002Fp\u003E\u003Cp\u003Egit revert *\u003C\u002Fp\u003E\u003Cp\u003E回滾某次提交\u003C\u002Fp\u003E\u003Cp\u003E將某次變更(在sourcetree裏是某個節點)右鍵選擇回滾提交。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F84faceb75419442e9f504377ed98886e\" img_width=\"488\" img_height=\"354\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E回滾文件\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Ffa481ae8c1e04a63a9f52c7e271f1ea0\" img_width=\"600\" img_height=\"220\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E回滾行\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Ff8aa7c4f42e94bbebbca3ba15504311b\" img_width=\"600\" img_height=\"249\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E忽略文件\u003C\u002Fp\u003E\u003Cp\u003E項目中,有一些文件夾是需要忽略,而不需要提交到倉庫裏,比如bin目錄下、target目錄下的文件。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fcf69305845c6454383bf8f4aa3ea203b\" img_width=\"578\" img_height=\"426\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fc3154365f8ed4b88964821a41bcb9ed2\" img_width=\"406\" img_height=\"253\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E這裏支持忽略單個文件、忽略所有擴展名、或略文件夾下的一切等。之後,我們不會看到這些文件變動。\u003C\u002Fp\u003E\u003Cp\u003E需要說明的是忽略文件,只能忽略未跟蹤文件,如果已跟蹤文件(之前被提交過),需要先將這些文件刪除後,提交代碼庫,再次忽略文件。合併分支\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F564cb26060634e5287213aa5da4c8a16\" img_width=\"479\" img_height=\"216\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E由圖中可以看出,我們的測試分支代碼落後master分支2個節點,我們可以在master分支上右鍵選擇合併到當前分支\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fbfd6e33caa1545159a73cd53890db5d9\" img_width=\"373\" img_height=\"345\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E當有衝突時,需要和上文中介紹的那樣解決衝突,然後提交;如果沒有衝突,需要手動點擊推送按鈕將合併後的變更提交到遠程\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F8f7b6ab8cfd0428ebfa101ffbf764936\" img_width=\"525\" img_height=\"218\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E貯藏(暫存)代碼\u003C\u002Fp\u003E\u003Cp\u003E$ git stash\u003C\u002Fp\u003E\u003Cp\u003E上文已有介紹,主要指暫存所有變更,以便於應用暫存(windows下叫\u003Cstrong\u003E貯藏\u003C\u002Fstrong\u003E)\u003C\u002Fp\u003E\u003Cp\u003E審查文件\u003C\u002Fp\u003E\u003Cp\u003E假設一個文件被不同的開發修改過,有段代碼需要找到修改人,我們可以右鍵審查文件查看每一行的作者。\u003C\u002Fp\u003E\u003Cp\u003E$ git blame\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fabf80d2522604ecca98e5738e5231493\" img_width=\"363\" img_height=\"281\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E效果如下:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F29a7e6afd4e2494a9dcb4105d9fa1dce\" img_width=\"600\" img_height=\"429\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E右鍵某一行選擇查看詳細日誌 可以看到該次提交的說明。查看文件變動歷史\u003C\u002Fp\u003E\u003Cp\u003E我們時常需要查看某個文件變動的歷史,這裏我們可以右鍵查看文件的 變更歷史\u003C\u002Fp\u003E\u003Cp\u003E$ git log\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F561160a6ca0d4fe69064a07713c3f4b6\" img_width=\"464\" img_height=\"358\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E點擊後效果如圖:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F088dd6f1af6846df803abe37f0d26e9b\" img_width=\"600\" img_height=\"152\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E按文件打開歷史版本\u003C\u002Fp\u003E\u003Cp\u003E有些時候,我們也需要查看文件的歷史版本,這裏可以選中節點後,選擇那個變更文件,右鍵 打開歷史版本\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F0d64971e9bbd45dfa5e63be3897c4022\" img_width=\"417\" img_height=\"295\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003Esourcetree會生成一個臨時文件(歷史版本),以供我們分析。標籤的使用\u003C\u002Fp\u003E\u003Cp\u003E我們有些時候需要給一個變更增加一個標籤,比如\u003Cstrong\u003E穩定版1.0\u003C\u002Fstrong\u003E的標籤\u003C\u002Fp\u003E\u003Cp\u003Egit tag v1\u003C\u002Fp\u003E\u003Cp\u003E$ git tag -d v1 \u002F\u002F移除標籤\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F3dac9a1f568e4f9393e65cecb83f0dd7\" img_width=\"455\" img_height=\"390\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E效果如下:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe1116cd7e508426d9ad2e92234f266dd\" img_width=\"597\" img_height=\"326\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E存檔\u003C\u002Fp\u003E\u003Cp\u003E存檔指將當前版本打包成一個zip包。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fd999bfd7e90e435197225d90620764bf\" img_width=\"408\" img_height=\"311\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E檢出分支\u003C\u002Fp\u003E\u003Cp\u003E檢出分支意思是將當前項目回到選中的版本,這樣我們可以很輕鬆回到任意一個版本,來編譯項目,或者檢查當時項目的問題。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F36a85afecb8640f1ba5377de711b58a7\" img_width=\"396\" img_height=\"309\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E其他\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F2f9b616f8fcc476b9e1b9478328ec8a1\" img_width=\"335\" img_height=\"327\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Col\u003E\u003Cli\u003E合併 一般是用於不通分支間,將某次提交的所有變更合併到當前分支。\u003C\u002Fli\u003E\u003Cli\u003Erebase、交互式變都是變基,主要是將遠程的這個分支名裏的標識改變,大部分場景用不到\u003C\u002Fli\u003E\u003Cli\u003E重置到當前節點:這個功能蠻好用的,可以將目前的分支回滾到那一次的分支,然後將所有的文件變更顯示出來,相當於回到當時準備提交的時候(包含之後的所有變動)。\u003C\u002Fli\u003E\u003Cli\u003E遴選 從不同的分支中檢出一個單獨的commit , 並把它和你當前的分支合併,類似於打補丁,例如,修復一個所有分支都有的bug這樣的場合可以適用。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E$ git revert\u003C\u002Fp\u003E\u003Cp\u003E$ git cherry-pick 4a1fd5\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F2203119c76384cac8072f276772eb645\" img_width=\"329\" img_height=\"316\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Col\u003E\u003Cli\u003E分支的拉取推:從遠程拉取\u003C\u002Fli\u003E\u003Cli\u003E跟蹤分支:當未跟蹤時表示本地沒有和遠程建立分支的聯繫\u003C\u002Fli\u003E\u003Cli\u003E重命名分支\u003C\u002Fli\u003E\u003Cli\u003E刪除分支等\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E如何查看界面上的操作對應命令\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F94582025a9b745a7bc4dce3718ce6e19\" img_width=\"568\" img_height=\"600\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E設置後可以看到每部操作的git命令\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F003f5567fa744277af71435937195218\" img_width=\"600\" img_height=\"458\" alt=\"你確定能記住那麼多git命令嗎?快試試Sourcetree吧\" inline=\"0\"\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E一些良好的習慣\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E儘可能丟棄一些無意義的變更\u003C\u002Fli\u003E\u003Cli\u003E儘可能按模塊分配開發人員任務\u003C\u002Fli\u003E\u003Cli\u003E合併分支後需立刻解決掉衝突\u003C\u002Fli\u003E\u003Cli\u003E減少單個文件內代碼變動的區塊\u003C\u002Fli\u003E\u003Cli\u003E如果使用我的版本解決問題,需告知對方\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Ch1\u003E總結\u003C\u002Fh1\u003E\u003Cp\u003E通過本文介紹,可以解決平時90%以上的各個代碼提交問題,至於用什麼ide環境,那都不是事,使用ide開發工具打開sourcetree裏的項目即可。\u003C\u002Fp\u003E\u003Chr\u003E\u003Cp\u003E現在人工智能非常火爆,很多朋友都想學,但是一般的教程都是爲博碩生準備的,太難看懂了。最近發現了一個非常適合小白入門的教程,不僅通俗易懂而且還很風趣幽默。所以忍不住分享一下給大家。點這裏可以跳轉到教程。\u003C\u002Fp\u003E\u003Cp\u003E \u003Ca class=\"pgc-link\" href=\"https:\u002F\u002Fwww.captainbed.net\u002Fsuga\" target=\"_blank\"\u003Ehttps:\u002F\u002Fwww.captainbed.net\u002Fsuga\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6720364006021792264
相關文章