git pull && git fetch && git stash && git rebase && git reset

git pull && git fetch

經過一張圖瞭解下,git fetch和git pull的概念: git

  • fetch:將遠程主機更新內容拉到本地,用戶檢查後決定是否合併到工做分支上。
  • pull:將遠程主機更新內容拉到本地直接合並,git pull = git fetch + git merge,這樣可能產生衝突。

git pull的問題是把過程當中的細節隱藏起來了,一旦代碼有問題就很難找到出錯的地方。app

git stash

當你在一個分支上在進行開發時,臨時須要切換到另外一個分支解決一些比較緊急的事情,問題是你才工做了通常,你不想回不到這個工做點,這時就須要用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

合併代碼有兩種方式:

  • git merge
  • git rebase

git rebase目的是對一段線性提交歷史進行編輯,刪除,複製,黏貼,經過rebase可使咱們的提交歷史感受,整潔。

不要經過rebase對任何已經提交到master倉庫的commit進行修改。

經過rebase能夠幫助咱們合併多個commit爲一個完整的commit。

git reset

適用於在某個提交點從新開分支。好比某個提交以後代碼咱們都不要了,能夠在本地reset到指定commit,從新開啓一個branch繼續開發。

  • git reset --soft 只是對現有版本庫進行更改。
  • git reset --hard 更改內容提交到工做區,不能恢復。

能夠用來對某些提交進行撤銷。

相關文章
相關標籤/搜索