git的GUI工具Sourcetree使用及命令行對比

1.提交推送

binlive前端開發,web開發,node,vue,react,webpack

流程html

  1. 勾選要提交的文件
  2. 填寫提交說明內容
  3. 想提交直接推送到代碼倉庫時,勾選左下角按鈕
  4. 最後點擊提交按鈕便可完成代碼推送

等同於前端

git add index.html  //添加暫存文件
git commit -m "feat(index):  新增index.htm首頁內容"  //添加提交及提交信息
git push  //推送至遠程

2.貯藏工做區

binlive前端開發,web開發,node,vue,react,webpack

使用vue

  1. 當你想使如今當工做區保持乾淨時可使用暫存功能,貯藏會把全部未提交的修改(包括暫存的和非暫存的)都保存起來
  2. 當你有另外一部份內容須要修改可是不想丟棄如今已經修改過當內容時,能夠貯藏工做區
  3. 當你想推送代碼時,發現分支已有別人提交當代碼(處於分支落後時),能夠先暫存代碼而後再拉去最新當代碼,代碼拉取完成而且沒有衝突時能夠將貯藏區保存的內容應用到當前工做區

等同於node

git stash    //存儲工做區
git stash save 'development'     //存儲工做區並添加備註內容
git stash list         //查看已貯藏區列表
git stash apply        //應用最新貯藏的內容(應用後不刪除該貯藏)
git stash pop         //應用最新貯藏的內容(應用後該貯藏的內容會被刪除!)
git stash drop         //刪除最新貯藏的內容
git stash apply        git stash pop        git stash drop 均可以指定操做任意一個已貯藏的內容,只須要在後面跟入stash@{1}索引,輸入git stash list 查看索引

3.回撤版本

binlive前端開發,web開發,node,vue,react,webpack

binlive前端開發,web開發,node,vue,react,webpack

使用react

  1. 當不當心將錯誤當代碼推送到遠程倉庫想要回撤而且不留下版本記錄時
  2. 選中要回撤到到版本,點擊重置到此次提交,此時本地版本將會重置到該版本,而且落後於遠程分支
  3. 最後使用命令行強制推送git push --force origin master,將本地代碼強制覆蓋到遠程倉庫

等同於webpack

git reset --soft 634b64d //將版本重置到634b64d版本,或者 git reset --soft HEAD^ 將版本重置到上一個版本,git reset --hard 634b64d 命令則不會保存以前提交到內容
git push --force origin master //強制覆蓋遠程倉庫

4.提交回滾

binlive前端開發,web開發,node,vue,react,webpack

使用git

  1. 但願將當前提交的版本回滾到此次提交以前而且保留此次提交,可使用提交回滾
  2. 選中要回滾的版本,點擊提交回滾,此時本地分支將會回滾到該提交以前到狀態,回滾也會被看成一次提交,而且領先於遠程分支
  3. 最後推送代碼便可完成遠程倉庫提交記錄回滾,而且保留被回滾到記錄

等同於web

git revert HEAD -n //回滾到上一個版本
git commit -m '回滾該次提交'
git push

5.版本標籤記錄(tag)

binlive前端開發,web開發,node,vue,react,webpack

binlive前端開發,web開發,node,vue,react,webpack

使用shell

  1. 在發佈階段性版本時能夠爲版本作標籤記錄
  2. 選中要打標籤的版本,點擊標籤就會彈出要打標籤打設置窗口,勾選推送標籤後標籤會被推送到遠程倉庫,不然標籤只會存在於你的本地倉庫
  3. 刪除標籤能夠刪除已經被添加過的標籤

等同於app

git tag //查看已有的標籤
****操做本地倉庫標籤******
git tag v1.0.0 //爲最新的提交記錄建立名爲'v1.0.0'的標籤
git tag v1.0.0 1452113 //爲版本號1452113的提交記錄建立名爲'v1.0.0'的標籤
git tag -d v1.0.0 //刪除本地倉庫名爲'v1.0.0'的標籤
****操做遠程倉庫標籤******
git push origin v1.0.0  //將名爲'v1.0.0'的標籤推送到遠程倉庫
git push origin :refs/tags/v1.0.0  //刪除遠程倉庫里名爲'v1.0.0'的標籤

6.建立分支

binlive前端開發,web開發,node,vue,react,webpack

使用

  1. 建立分支時會在當前分支基礎上建立分支
  2. 勾選工做副本父節點時會在當前分支的最新版本上建立新分支,勾選指定的提交時能夠選中建立新版本時的版本記錄位置
  3. 勾選檢出新分支時能夠在完成版本建立後直接切換到該建立的新分支上

等同於

git branch  //查看分支
git branch dev //在當前分支基礎上,以最新版本建立名爲'dev'的分支
git branch dev d519940  //以'd519940'版本記錄,建立名爲'dev'的分支
git checkout dev  //切換到'dev'分支
git checkout -b dev  //建立並切換到'dev'分支
git branch -d dev  //刪除'dev'分支(刪除分支時不能處於所要被刪除的分支上)
git branch -D dev  //強制刪除'dev'分支(分支尚未被合併時須要強行刪除,強行刪除後將丟失已修改的內容)
******操做遠程倉庫********
git push origin dev:dev  //將本地分支'dev'推送到遠程倉庫命名爲'dev',(本地分支名:遠程分支名)
git push --delete origin dev  //刪除遠程'dev'分支

7.合併分支

binlive前端開發,web開發,node,vue,react,webpack

使用

  1. 將dev分支提交後,若是要合併到master,先將本地分支切換到master(在分支名稱上雙擊便可切換)
  2. 要合併至哪一個分支,必須先切換到該分支

等同於

git checkout master  //切換至master分支
git merge de //合併de分支至master分支

8.拉取分支

binlive前端開發,web開發,node,vue,react,webpack

使用

  1. git fetch 抓取遠程更新取回本地,不會對工做區代碼進行合併形成任何影響
  2. git push 將本地分支的更新推送到遠程
  3. 拉取操做默認所有不勾選的時候使用git pull --no-commit
  4. --no-commit 參數在拉取合併後,爲了防止合併失敗並不自動提交,可以給使用者一個機會在提交前審視和修改合併結果
  5. --no-ff 不使用fast-forward方式合併,保留分支的commit歷史
  6. --rebase 使用變基代替合併(詳見下文)

rebase 變基

git pull的操做自己上是抓取遠端更新而後與本地分支進行合併,合併又分爲merge以及rebase
git pull 等同於 git fetch + git merge
git pull --rebase 等同於 git fetch + git rebase

在落後版本狀況下使用merge拉取合併時,且產生一個merge commit形成了沒必要要的合併提交,並且提交線也變得不連貫。使用rebase變基操做合併時,它會把你的分支移動到master分支的後面,把master分支上新的提交併入到你提交以前,這樣提交線就變成了一條連貫的線。詳見 Git 分支 - 變基 or Rebase使用

等同於

git fetch //抓取遠程更新取回本地不進行合併
git pull  //拉取遠程更新使用'git merge'的方法合併到本地,而且提交該次合併
git pull --no-commit  //拉取遠程更新使用'git merge'的方法合併到本地,不會自動提交提該次合併
git pull --no-commit --log
git pull --no-commit --no-ff
git pull --no-commit --rebase //拉取遠程更新使用git rebase的方法合併到本地

9.操做遠程分支

binlive前端開發,web開發,node,vue,react,webpack

使用

  1. 展開遠端列表時,便可顯示遠程倉庫中全部的遠程分支
  2. 選中某一項分支,右鍵選擇檢出時,便可將該遠程分支在本地建立出一條分支,而且能夠在後續對話框中選擇是否跟蹤該遠程分支(跟蹤分支後,使用推送(push)或拉取(pull)時,都會自動推送(push)或拉取(pull)到該關聯的遠程分支上)
  3. 選擇拉取功能時,能夠將該遠程分支更新併合併到本地當前所在分支上
  4. 選擇刪除時,能夠將遠程代碼倉庫中的該遠程分支刪除

等同於

git branch -r  //查看全部遠程分支 (使用'git branch -a'命令能夠查看全部分支)
git checkout -b dev --track origin/dev //將遠程'dev'分支在本地建立命名爲'dev'分支,'--track'能夠跟蹤該遠程分支
*****下面兩條命令刪除遠程'dev'分支********
git branch -r -d origin/dev
git push origin :dev

10.查看修改記錄

binlive前端開發,web開發,node,vue,react,webpack

使用

  1. 選中文件後右鍵查看選中的修改日誌便可查看在當前版本以及以前全部版本的提交記錄
  2. 可視化界面能夠很直觀的對比文件修改版本記錄

等同於

git log index.html  //查看'index.html'文件全部的提交信息記錄
git log -p index.html  //查看'index.html'文件全部的提交修改內容

11.挑選版本合併(cherry-pick)

binlive前端開發,web開發,node,vue,react,webpack

使用

  1. 當你想把一個分支上中間某一條或者幾條記錄合併到另外一個分支上時,由於要合併的分支上又存在其餘別的提交,又不想把這些也一塊兒被合併上去,這時可使用遴選功能(cherry-pick)
  2. 先切換到要合併的分支上,而後在版本記錄上選擇你要合併的那條版本(能夠多選合併多條),右鍵選擇遴選
  3. 使用遴選時,最好按照提交順序進行合併,若是跳過前面的版本選擇後面的則可能會致使文件產生衝突,不過手動解決衝突後依然能夠繼續提交推送

等同於

git checkout dev //要合併到'dev',須先切換至'dev'分支
git cherry-pick  905a563 //將'905a563'版本合併到當前分支,而且保留當次提交信息
相關文章
相關標籤/搜索