zoukankan      html  css  js  c++  java
  • 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 分支名称              将指定分支合并到当前分支

      

  • 相关阅读:
    hdu4911 简单树状数组
    hdu4911 简单树状数组
    hdu4912 LCA+贪心
    hdu4912 LCA+贪心
    hdu4907 水dp 或者set
    hdu4907 水dp 或者set
    hdu4908 中位数子串
    hdu4908 中位数子串
    hdu4909 状态压缩(偶数字符子串)
    hdu4909 状态压缩(偶数字符子串)
  • 原文地址:https://www.cnblogs.com/gaoya666/p/9145672.html
Copyright © 2011-2022 走看看