.eye-care { background-color: rgba(199, 237, 204, 1); padding: 10px }.head-box { display: flex }.text-indent { text-indent: 2em }.text-bg { }.bg { font-size: 12px; font-weight: 600; color: rgba(0, 0, 0, 1); margin-bottom: 20px }
GIT 运行流程图GIT 常规操作
- 创建分支 , clone、checkout
- diff代码,查看代码具体改动
- diff分支 ,查看分支commit的差异
- 合并代码,merge还是rebase
- 版本回退,git log + git reset
- 代码回退,clean、checkout、reset
- Gitbug分析
文章插图
创建分支
- .gitignore文件
选择哪些文件不需要git进行上传(版本管理,前端项目一般是nodemodules文件 - git clone 的是dev的分支 , 怎么提交到other分支
- git branch -m oldBranch newBranch (切换分支: git branch -m dev function/hasdone)
- git push -u origin function/hasdone (push 的时候页更新一下分支)
- git checkout -b 本地分支名 origin/远程分支名
创建并指定特定远程分支 - git branch -d 指定分支名 删除该分支
- git push origin 指定分支名(如没有则新建)
- diff展示指定文件差异:
git diff xxx文件
- diff展示总体差异
- git diff branch1 branch2 --stat
显示差异的概括陈述 , branch2 比 branch1 增删的文件,branch1为参考分支 - git diff branch1 branch2 具体文件路径
显示两个分支在该文件的具体差异 - git diff branch1 branch2
显示两个分支的全部具体差异(不推荐)
- git log branch1 ^branch2
branch1分支有,而branch2分支没有 - git log branch1..branch2
b2 比 b1 多提交的commit日志 - git log branch1...branch2
单纯显示两个分支日志的不一样 - git log -left-right branch1...branch2
显示日志的不一样基础上显示不同点是在哪个分支上
- 当你push你的commit时,其他人先于你 提交了 一些commit,产生了冲突
直接pull或者merge,都会在git log 你的日志上产生一个分叉然后合并的情况 , 分叉为其他人提交的commit - 优雅永不过时,`git rebase Main self`
将Main 分支 合并到 self 分支,不会产生分支,self 分支上有而 Main分支上没有的commit将会按需加入你的日志中 - 尔后,你再 push 你的分支,将 self 分支上的commit 提交上去
这样冲突就变成一个线性的状态,不会产生额外的分支
- git reset回退到历史版本
- git log --pretty=oneline : 找一个需要回到的版本hash号
- git reset --hard 版本hash 号
文章插图
代码回退
- 情况1、只在
- 删除
untrack file文件
- 删除
指定
untrack file :git clean -f xxx文件
- 删除
所有
untrack file :git clean -f
- 删除
- 删除
untrack file文件及目录
- 删除
指定
untrack file :git clean -fd xxx文件/目录
- 删除
所有
untrack file :git clean -fd
- 删除
- 撤回
所有
修改:git checkout .
- 撤回
指定文件
的修改:git checkout -- xxx文件
- 撤回
所有
暂存修改:git reset head .
- 撤回
指定文件
的修改:git reset head -- xxx文件
- 如上文回退版本所示,强制回退到
上一个
版本:git reset --hard head^
- 返回到某个节点,
不保留
修改 :git reset --hard commit_id
,commit_id通过git log 查看 - 返回到某个节点,
保留
推荐阅读
- 【k8s连载系列】2. k8s整体架构
- rabbitmq docker安装消息队列及数据库(mongo、mysql)
- jk罗琳中文官网 jk罗琳
- Nginx的概述和配置
- Sqlite 安装操作使用
- 流金岁月各人物结局_流金岁月锁锁结局
- 五 RK3568开发笔记:在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像
- Linux操作系统,笔录!
- 九 SpringCloud - Nginx
- 十 SpringCloud - Docker
- 返回到某个节点,
本地工作区
(workspace)新增
了文件A,状态为untrack
本地工作区
(workspace)修改
了文件A(包括删除
文件A),但还没有使用 git add 把A的修改暂存到暂存区(index),状态为Changes not staged for commit
git add
暂存了本地修改,状态为Changes to be committed:
git commit
暂存了本地修改,状态为Your branch is ahead of ***