前面介绍了Git版本控制,为咱们省去了不少没必要要的麻烦。python
有没有想过,在咱们开发过程当中,修改须要是常有的事,若是咱们如今不想要这个功能了,那么如何回到以前的版本呢?回滚,回到上一个版本。git
那若是咱们后来又想把那个功能加上,但又不能回滚道以前的版本,怎么办?咱们能够在版本库找到全部的版本 ,返回到咱们须要的版本,继续开发。vim
git reflog 查看全部版本 git reset -hard 回滚 git checkout
若是咱们在可发的过程当中,以前上线的代码出现bug怎么办?app
stash用于将工做区发生变化的全部文件获取临时存储在“某个地方”,将工做区还原当前版本未操做前的状态;stash还能够将临时存储在“某个地方”的文件再次拿回到工做区。学习
stash相关经常使用命令:版本控制
执行 git stash pop 命令时,可能会遇到冲突,由于在紧急修复bug的代码和经过stash存储在“某个地方”的代码会有重合部分,因此执行 git stash pop 时候就会出现冲突,有冲突解决冲突便可。那就须要咱们手动解决冲突了。blog
分支学习: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