Git 之 修复bug

前面介绍了Git版本控制,为我们省去了很多不必要的麻烦。

回滚

有没有想过,在我们开发过程中,修改需要是常有的事,如果我们现在不想要这个功能了,那么如何回到之前的版本呢?回滚,回到上一个版本。

那如果我们后来又想把那个功能加上,但又不能回滚道之前的版本,怎么办?我们可以在版本库找到所有的版本 ,返回到我们需要的版本,继续开发。

git reflog 查看所有版本

git reset -hard 回滚

git checkout

修复bug  

如果我们在可发的过程中,之前上线的代码出现bug怎么办?

方案一: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 时候就会出现冲突,有冲突解决冲突即可。那就需要我们手动解决冲突了。

方案二: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相同,即:找到冲突文件,手动修改冲突并提交,此处不再敖述。

branch相关常用命令:

  • git branch 分支名称             创建分支
  • git checkout 分支名称          切换分支
  • git branch -m 分支名称        创建并切换到指定分支
  • git branch                          查看所有分支
  • git branch -d 分支名称         删除分支
  • git merge 分支名称              将指定分支合并到当前分支

 

  

posted @ 2018-06-13 10:21  高~雅  阅读(881)  评论(0编辑  收藏  举报