git 最新笔记,工作中的必会技能
1.状态查看:
git status 可以查看工作区,暂存区的状态
untracked 在暂存区没有该文件
modified 修改过
staged 使用git add 暂存过
2.添加操作:
git add [file name] 将工作区的新建/修改添加到暂存区
3.提交操作
git commit -m "commit message" [file name] 将暂存区的内容提交到本地仓库
4.查看历史记录
git log 多屏显示控制方式 空格向下翻页 b向上翻页 q退出 git log --pretty=online // 简洁方式 git log --oneline git reflog
5.前进后退
5.1基于索引值操作[推荐] git reset --hard [索引值]
5.2使用^符号:只能后退 git reset --hard HEAD^(表示往后退一步,后退几步加几个^)
5.3使用~符号:只能后退 git reset --hard HEAD~n(表示后退n步)
6.reset命令的三个参数对比
--soft 参数
仅仅在本地库移动指针
--mixed参数
在本地库移动HEAD指针
重置暂存区
--hard参数(常用)
在本地库移动HEAD指针
重置暂存区
重置工作区
7.删除文件后找回
前提:删除前,文件存在的状态提交到了本地库
操作:git reset --hard[指针位置]
删除操作已经提交到本地库:指针位置指向历史记录
删除操作尚未提交到本地库:指针位置使用HEAD
8.文件比较
git diff [文件名] 将工作区中的文件和暂存区进行比较
git diff [本地库历史版本] [文件名] 将工作区中的文件和本地历史版本进行比较
不带文件名可以比较多个文件
git diff --cached 比较缓存区与本地库最近一次commit内容
git diff HEAD 比较工作区与本地最近一次commit内容
git diff <commit ID> <commit ID> 比较两个commit之间的差异
9.分支管理
git branch 查看本地分支
git branch -r 查看远程分支
git branch [分支名] 新建一个分支
git branch -d [分支名] 删除分支
git checkout [分支名] 切换分支
git checkout -b [分支名] 新建分支并切换到该分支
git merge [分支名] 合并分支
git branch --merged 查看哪些分支已经合并到当前分支
git branch --no-merged 查看哪些分支没有合并到当前分支
10.git远程库别名
git remote add [别名] [远程库地址]
11.远程库修改的拉取
pull = fetch + merge
git pull [远程库地址别名] [远程库分支名]
git fetch [远程库地址别名] [远程库分支名]
12.推送到远程库
git push [远程库地址别名] [远程库分支名]
13.文件暂存
git stash save -a "message" 添加改动到stash
git stash drop
<stash@(ID)>
删除暂存git stash list 查看stash列表
git stash clear 删除全部暂存
git stash pop
<stash@(ID)>
恢复改动
14.撤销操作
git checkout -- <file> 撤销工作区修改
git reset HEAD <file> 撤销暂存区文件(不覆盖工作区)
git reset --(soft | mixed | hard) <HEAD -num> | <commit ID> 版本回退
15.线上回滚操作
方法一:(强制指针回移)
1.查看历史记录
git reflog
2.本地分支回滚到指定版本
git reset --hard [索引值]
3.强推到远程(直接push推不上去,需要强推,因为reset之后,远程分支比本地分支新)
git push -f origin [远程分支名]
方法二:(推荐)
1.查看历史记录
git reflog
2.反向新创建一个版本,这个版本的内容与我们回滚的版本内容一致,HEAD会指向这个新版本,而不是回退到之前版本
git revert [索引值]
3.直接推送到远程即可
git push origin [远程分支名]
16.查看文档
git help -a 展示git命令大纲全部列表
git help git help [命令]
最新文章
- CozyRSS开发记录1-原型图与Grid
- js一些代码方法
- 用 <;a>; 实现 <;form>; 表单的提交
- Eclipse 常用设置
- Android 源码编译 步骤
- vsphere client cd/dvd 驱动器1 正在连接
- [jobdu]二进制中1的个数
- springmvc的几点见解
- JavaScript判断IE各版本完美解决方案
- CColor类封装
- [BZOJ]1069: [SCOI2007]最大土地面积
- Centos7.5 安装VirtualBox增强工具
- 执行sql语句后报1055-- this is incompatible with sql_mode=only_full_group_by
- python爬虫学习之查询IP地址对应的归属地
- python--Numpy and Pandas 笔记01
- JMeter学习笔记2-图形界面简单介绍
- Java - BlockingQueue
- python笔记1-基础概念、python安装使用配置
- 服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)
- day36-常见内置模块五(collections、xml模块)