經過一張圖瞭解下,git fetch和git pull的概念: git
git pull的問題是把過程當中的細節隱藏起來了,一旦代碼有問題就很難找到出錯的地方。app
當你在一個分支上在進行開發時,臨時須要切換到另外一個分支解決一些比較緊急的事情,問題是你才工做了通常,你不想回不到這個工做點,這時就須要用git stash命令了。fetch
git stash 是「儲藏」的意思,能夠獲取你工做目錄的中間狀態,修改過的追蹤文件能夠放到一個未變動的堆棧中,隨時能夠從新應用。blog
git stash(這個) 保存當前的工做進度。會分別對暫存區和工做區的狀態進行保存。開發
git stash save 「message…」 這條命令其實是第一條 git stash 命令的完整版。it
git stash list 顯示進度列表。此命令顯然暗示了git stash 能夠屢次保存工做進度,並用在恢復時候進行選擇。ast
git stash pop(這個) 若是不使用任何參數,會恢復最新保存的工做進度,並將恢復的工做進度從存儲的工做進度列表中清除。im
git stash apply 除了不刪除恢復的進度以外,其他和 git stash pop 命令同樣。apply
git stash clear 刪除全部存儲的進度。img
合併代碼有兩種方式:
git rebase目的是對一段線性提交歷史進行編輯,刪除,複製,黏貼,經過rebase可使咱們的提交歷史感受,整潔。
不要經過rebase對任何已經提交到master倉庫的commit進行修改。
經過rebase能夠幫助咱們合併多個commit爲一個完整的commit。
適用於在某個提交點從新開分支。好比某個提交以後代碼咱們都不要了,能夠在本地reset到指定commit,從新開啓一個branch繼續開發。
能夠用來對某些提交進行撤銷。