Git 之 修復bug

前面介紹了Git版本控制,爲咱們省去了不少沒必要要的麻煩。python

回滾

有沒有想過,在咱們開發過程當中,修改須要是常有的事,若是咱們如今不想要這個功能了,那麼如何回到以前的版本呢?回滾,回到上一個版本。git

那若是咱們後來又想把那個功能加上,但又不能回滾道以前的版本,怎麼辦?咱們能夠在版本庫找到全部的版本 ,返回到咱們須要的版本,繼續開發。vim

git reflog 查看全部版本

git reset -hard 回滾

git checkout

修復bug  

若是咱們在可發的過程當中,以前上線的代碼出現bug怎麼辦?app

方案一:stash

stash用於將工做區發生變化的全部文件獲取臨時存儲在「某個地方」,將工做區還原當前版本未操做前的狀態;stash還能夠將臨時存儲在「某個地方」的文件再次拿回到工做區。學習

stash相關經常使用命令:版本控制

  • git stash             將當前工做區全部修改過的內容存儲到「某個地方」,將工做區還原到當前版本未修改過的狀態
  • git stash list        查看「某個地方」存儲的全部記錄
  • git stash clear     清空「某個地方」
  • git stash pop       將第一個記錄從「某個地方」從新拿到工做區(可能有衝突)
  • git stash apply     編號, 將指定編號記錄從「某個地方」從新拿到工做區(可能有衝突) 
  • git stash drop      編號,刪除指定編號的記錄

執行 git stash pop 命令時,可能會遇到衝突,由於在緊急修復bug的代碼和經過stash存儲在「某個地方」的代碼會有重合部分,因此執行 git stash pop 時候就會出現衝突,有衝突解決衝突便可。那就須要咱們手動解決衝突了。blog

方案二:branch

分支學習:branch稱爲分支,默認僅有一個名爲master的分支。通常開發新功能流程爲:開發新功能時會在分支dev上進行,開發完畢後再合併到master分支。開發

MacBook-Pro-4:pondo yaya$ git branch dev                 # 建立新分支,即:拷貝一份當前所在分支代碼到新分支
MacBook-Pro-4:pondo yaya$ git checkout dev               # 切換到dev分支
MacBook-Pro-4:pondo yaya$ vim app01/views.py             # 開發功能
MacBook-Pro-4:pondo yaya$ git status                     # 查看狀態,即:在dev分支修改了app01/views.py文件
On branch dev
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   app01/views.py

no changes added to commit (use "git add" and/or "git commit -a")
MacBook-Pro-4:pondo yaya$ git add .                      # 將修改文件添加到版本庫的暫存區
MacBook-Pro-4:pondo yaya$ git commit -m '新功能開發完畢'    # 將暫存區的內容提交到當前所在分支,即:dev分支
[dev 32b40cd] 新功能開發完畢
 1 file changed, 2 insertions(+) 
MacBook-Pro-4:pondo yaya$ git checkout master             # 切換回master分支 
Switched to branch 'master'
MacBook-Pro-4:pondo yaya$ git merge dev                   # 將dev分支內容合併到master分支
Updating 0972f4b..32b40cd
Fast-forward
 app01/views.py | 2 ++
 1 file changed, 2 insertions(+)

注意:git merge 時也可能會出現衝突,解決衝突的方式上述stash相同,即:找到衝突文件,手動修改衝突並提交,此處再也不敖述。it

branch相關經常使用命令:io

  • git branch 分支名稱             建立分支
  • git checkout 分支名稱          切換分支
  • git branch -m 分支名稱        建立並切換到指定分支
  • git branch                          查看全部分支
  • git branch -d 分支名稱         刪除分支
  • git merge 分支名稱              將指定分支合併到當前分支
相關文章
相關標籤/搜索