git中關於分支和stash的理解


  各位看官好,最近我學習了stash的用法,但是產生了一個問題,理論上來說,stash和分支都有保存代碼的功能,那么兩者的區別是什么呢?

 

  一、兩者之間的區別與聯系

  二、stash命令的使用

  三、分支的使用

  1、兩者之間的區別與聯系

  首先我們要明白,git是一款公司用於管理代碼的工具,因此,我們在公司的時候必須要每個人開發整個產品的整個產品中的一個小功能。如果我們假設沒有分支,那么我們就必須要在源代碼上改動,這樣一旦出現問題,很有可能導致整個代碼編譯無法通過,這在公司當中是絕對不允許的。

  但是如果有了分支就不同了,我們可以在整個源碼中創建一個屬於自己的分支。這樣即使調試過程中出現問題,我們也不會影響主分支。這就是分支的意義。

  那么stash又有什么用途呢?如果我們在開發一個功能中,突然你的領導告訴你,去解決一個bug或者去測試源碼中的一個功能。那么此時你需要做什么呢?你是不是應該重新開一個分支或者切換回主分支呢?但是不好意思,git中如果想要切換分支必須保證該分支的工作區和暫存區是干凈的。那么這個時候你有兩個選擇,第一,想辦法把你剛才寫的代碼保存一下。第二。直接把當前代碼提交到本地倉庫中。那么在軟件行業中原則上如果沒有寫完的功能是不能提交到倉庫中的,因此我們不建議使用第二種做法。因此我們就需要使用第一種方法。保存剛剛寫好的代碼。那么此時我們就需要用到stash命令。

  總結一下,如果我們要在源碼上開發一個新功能,那么我們就需要使用分支的功能。如果在開發新功能的工程中需要切換分支,那么我們就需要使用stash命令保存代碼。

  2、stash命令的使用

  誠如我之前所說,stash命令的主要作用就是保存代碼,所以他至少包含三個功能。1、保存。2、查看保存的歷史記錄。3、將保存的內容釋放出來。所以這個命令也可以分成三個部分,即為:

  git stash save "comment"      保存數據

  git  stash  list                          查找保存的歷史記錄   

  git  stash  pop                        將保存的內容釋放出來

  個人感覺這三個命令來說就足夠了。

  3、關於分支命令的使用

  分支的話命令有很多,不過我覺得一般來說我覺得創建,切換,查詢,合並就可以了。

  首先說創建:git  branch  +分支名稱

     切換:git  checkout + 分支名稱

     查詢:git  branch -vv

     合並:merge,rebase,cherry-pick等等。關於三者的區別,請參考我的博客《關於git rebase,git merge,git merge --no-ff的區別

  另外我補充一下,因為git本身是一個工具,所以它的自由度是非常大的,不一定要按照上述我所描述的方式使用,比如我身邊的小伙伴就不喜歡用分支,喜歡直接再拷貝一份代碼做測試。所以只要習慣就好。

   總結一下,今天主要寫了關於分支和stash的使用場景的說明。另外還簡單說明了stash和分支的使用命令。

  

 

 

 

  

 


免責聲明!

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



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