Git 相关命令(升级版)
Git 最常用命令在这里就不赘述了,例如
git commit / add / checkout等
1、让你轻松使用简略版git命令
1.1 配置 git 命令
git config --global --edit 进入 .gitconfig 的编辑1.2 git 缩写举例
[alias] st= status co = checkout ci = commit ps = push lgs = log --graph --decorate lg = log --graph --decorate --abbrev-commit --all2、Git 命令补充合集
2.1 怎么样能清楚了解项目发版的每个阶段
当然是打标签git tag
# 在本分支最新的提交上打tag git tag 3.39 # 在指定 commitID 打tag git tag 3.39 commitID # 删除指定的 tag git tag -d 3.392.2 只想要某个分支的其中一条commit
# 将指定提交应用于其他分支 git cherry-pick commitID2.2.1举例说明
# 切换到 master 分支 git checkout master # 操作 git cherry-pick f2.2.2 使用分支名转移
# 不使用 commitID,使用分支名 # 默认转移该分支最新的提交 git cherry-pick Feature2.3 临时想跳到另个分支怎么存储修改
2.3.1 给它们起个名字吧!
# 标签存储 git stash save "message"2.3.2 从哪里找它们?
# 所有的储存列表 git stash list2.3.3 我想用它们 / 丢了它们
# 应用 git stash apply [存储号] # 删除 git stash drop [存储号]2.3.4 我想看存储里修改了哪些内容
git stash show [存储号]2.3.5 只想存储某个文件
# 单个文件 git stash push ./src/pages/index/TipsTag/index.tsx # 多个文件(同个目录下) git stash push ./src/pages/apps/deploySpace/tabs/instance/components/* # 如果不清楚修改文件的具体路径,可以使用以下命令查看 git status #如果想指定目录下的文件类型【.tsx 或者 .scss】,可以使用【*.tsx】这种形式2.4 撤销操作(去掉某个commit)
reset大家应该不陌生了吧,只要谨慎使用--hard即可
# 回退到上一个版本 git reset --hard HEAD^ # 回退5次操作 git reset --hard HEAD{5}下面介绍一下revert吧
它的好处就是 撤销操作 会生成一个单独的commit提交,保留之前的提交(有迹可循)
# 去掉某个commit git revert <commit-hash>3、rebase 和 merge 的原理
3.1 merge
- 1节点和2节点会共同去找对应两个节点的父节点
- 3️⃣个节点的内容进行比较(可以理解为3️⃣份文档)
- 然后递归合并,进行比较,保留更改的内容
- 只有第一次不会额外产生一个commit
- 之前自己分支也就是 2 节点的所有commitID不会改变
3.2 rebase
- 不需要找共同的父节点,只需要找到 1节点 和 2节点
- 自己分支的指针从 2最新 指向 1最新
- 将 2节点 的提交内容暂存起来
- 然后 1分支 修改的内容重新提交一次,所以会生成新的commitID替换之前旧的commitID
- rebase后一条直线 是自己的分支(rebase是在自己的分支进行操作的),1节点的那个分支,其实是自己的,就是一条直线
3.3 rebase 的使用场景
- 保持提交历史的线性,让整个历史提交更加整洁和线性
- 缺点:会丢失各个分支的合并历史记录,它是将当前分支上的每个提交都取消,然后应用到目标分支上,因此之前的commitID都会变化
3.4 关于merge 和 rebase的流程动图
- merge的动图
- rebase的动图
