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 分支名称              将指定分支合并到当前分支
相关文章
相关标签/搜索