实战Git命令(界面操作+命令行)
先说明下公司的发版步骤,当需要开发一个新的功能,先从master分支中拉出一个自己的分支a(假设分支为a),在a分支开发功能完后,需要切换到dev分支,然后把自己的分支a合到dev分支,部署测试环境让测试同学测试,如果测试没问题了,将最新的master分支的代码合到自己的分支a中,然后把a分支合到master分支中,最后部署正式环境。
Idea快捷键Alt+F12 打开命令终端
git reset
Log中没回退记录,Revert命令有Log记录
(1)git reset --soft HEAD~1
回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区(提交前),不影响原来本地的文件(未提交的也不受影响)。
(2)git reset --hard HEAD~1
回退一个版本,清空暂存区(回到修改前,即commit前修改内容也被清空了),将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换。
(1)git reset --soft HEAD~1
补充:git reset --soft HEAD~1相当于idea中Undo Commit操作
(2)git reset --hard HEAD~1
git stash
应用场景
(1)当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash命令将修改的内容保存至堆栈区,然后顺利切换到hotfix分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。
(2) 由于疏忽,本应该在dev分支开发的内容,却在master上进行了开发,需要重新切回到dev分支上进行开发,可以用git stash将内容保存至堆栈中,切回到dev分支后,再次恢复内容即可。
总的来说,git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。这也就是说,stash中的内容不仅仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。git stash作用的范围包括工作区和暂存区中的内容,也就是说没有提交的内容都会保存至堆栈中
idea界面操作
命令行操作
git stash save “注释说明”
git stash pop
git clean
删除本地工作目录中未跟踪(没有 git add)的文件,在idea中文件的颜色是红色
git clean -n 显示 将要 删除的 文件 和 目录
git clean -f 删除 文件
git clean -df 删除 文件 和 目录
实战
git reset --hard HEAD~1
在一次合并代码中,修改完代码Commit后,然后想从自己的分支whl_benefit切换到dev分支,然后不小心点了dev分支合到merge到自己的分支了(合并后有冲突,同时会有很多dev的新代码需要你最终去Commit),这时就可以用的git reset --hard HEAD~1,回到上次Commit后打算切换dev分支的样子,如果你用的是git reset --soft HEAD~1,你会发现还有一堆新的代码需要你去判断要不要Commit(都是dev中存在,没有冲突的新代码或者新的文件),这时你得配合git clean命令把暂存区的文件回滚回去。
最新文章
- LeetCode: 3Sum
- Samba的安装与配置
- MySQL 循环执行kill语句杀掉连接
- SQL compute by 的使用
- Struts2(二)---将页面表单中的数据提交给Action
- NGUI之scroll view制作,以及踩的坑总结
- OAF_VO系列3 - Binding Style绑定方式
- 【CSS】使用CSS改变超链接样式
- programData
- Visual Studio 继续并运行上次的成功生成,未提示直接运行上一个版本解决方案!
- js判断是否是ie浏览器且给出ie版本
- Java标识符的命名规则
- WEB框架-Django框架学习(一)-基础层级关系
- css和css3弹性盒模型实现元素宽度(高度)自适应
- Mybatis 缓存分析
- Android并发编程 开篇
- 【转载】Chrome 0day漏洞:不要用Chrome查看pdf文件
- swift - 各种手势用法大全
- poj_3274 哈希
- 如何制作简单的 3D 打印模型
热门文章
- POJ_1961
- Gif开发笔记(一):gif介绍、编译和工程模板
- LeetCode初级算法之数组:350 两个数组的交集 II
- 区块链产业发展热潮来袭,Panda Global 认为体验、安全是关键词
- jwt与springcloud联用
- Pytest学习(20)- allure之@allure.step()、allure.attach的详细使用
- MySQL 锁(完整版)
- ⑥SpringCloud 实战:引入gateway组件,开启网关路由功能
- 【PY从0到1】第一节 安装与界面介绍
- 面试 16-01.MVVM