git 最新笔记,工作中的必会技能
1.状态查看:
git status 可以查看工作区,暂存区的状态
-
untracked 在暂存区没有该文件
-
modified 修改过
-
staged 使用git add 暂存过
2.添加操作:
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 [命令]