Git创建、diff代码、回退版本、撤回代码,学废了吗
.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
Git完整操作流程
Git bug分析
创建分支
.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 clone -b xxx 拉取指定xxx分支的代码
git checkout -b 本地分支名 origin/远程分支名
创建并指定特定远程分支git branch -d 指定分支名 删除该分支
git push origin 指定分支名(如没有则新建)
命令行 diff 代码
diff展示指定文件差异:
git diff xxx文件diff展示总体差异
git diff branch1 branch2 --stat
显示差异的概括陈述,branch2 比 branch1 增删的文件,branch1为参考分支git diff branch1 branch2 具体文件路径
显示两个分支在该文件的具体差异git diff branch1 branch2
显示两个分支的全部具体差异(不推荐)
命令行 diff 分支,查看分支commit的差异
git log branch1 ^branch2
branch1分支有,而branch2分支没有git log branch1..branch2
b2 比 b1 多提交的commit日志git log branch1...branch2
单纯显示两个分支日志的不一样git log -left-right branch1...branch2
显示日志的不一样基础上显示不同点是在哪个分支上
rebase 合并分支
当你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 号
代码回退
删除
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 查看 - 返回到某个节点,
保留修改 :git reset --soft commit_id
- 返回到某个节点,
情况1、只在本地工作区(workspace)新增了文件A,状态为untrack
情况2、只在本地工作区(workspace)修改了文件A(包括删除文件A),但还没有使用 git add 把A的修改暂存到暂存区(index),状态为Changes not staged for commit
情况3、已经使用git add暂存了本地修改,状态为Changes to be committed:
情况4、已经使用git commit暂存了本地修改,状态为Your branch is ahead of ***
完整提交流程:
1. git add .
2. git stash save "提示信息" //存储到staged状态里面,不再进行跟踪
3. git merge 指定分支(可远可近) // 合并到本地代码
4. git [stash](https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html "stash") pop 弹出并使用 / git stash apply 应用栈顶缓存
git四种基础状态
git报错处理
git提交报错:OpenSSL SSL_read: Connection was reset, errno 10054
解决:在每一次提交前修改全局配置:git config --global http.sslVerify "false"
centos7 git clone 报错:SSL certificate problem: unable to get local issuer certificate
解决:命令行输入git config --global http.sslVerify false
Git创建、diff代码、回退版本、撤回代码,学废了吗的更多相关文章
- 通过Tag标签回退版本修复bug
tag是对历史一个提交id的引用,如果理解这句话就明白了使用git checkout tag即可切换到指定tag,例如:git checkout v0.1.0 切换到tag历史记录会处在分离头指针状态 ...
- Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突
Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下G ...
- git回退版本: 回退本地代码版本 + 回退服务器代码版本
1.回退本地代码版本 借助IDEA开发工具回退版本,点击Version Control ,查看历史版本号: 右击想要回退的版本号,选择Reset Current Branch hear... 选择 H ...
- git的使用(包括创建远程仓库到上传代码到git的详细步骤以及git的一些常用命令)
A创建远程仓库到上传代码到git 1)登陆或这注册git账号 https://github.com 2)创建远程仓库 3)打开终端输入命令 cd到你的本地项目根目录下,执行如下git命令 git in ...
- Git学习(二)——创建版本库、查看与回退版本
一.创建版本库 版本库,又名仓库(Repository),可以简单理解为一个目录,这个目录里的所有文件可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者将来某 ...
- git创建远程项目并进行代码管理及相关命令
1.windows下载Git https://git-scm.com/downloads 然后一路点击安装 2.登录github,点击右上角创建仓库 3.在本地项目根目录下 输入如下命令 ss ...
- git代码回退
情况1.还没有push可能 git add ,commit以后发现代码有点问题,想取消提交,用: reset git reset [--soft | --mixed | --hard] eg: gi ...
- Git 如何优雅地回退代码
前言 从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码.提交.合并等,更复杂的操作没有使用过, ...
- GIT如何根据历史记录回退代码
ps: 因为使用这种方式回退后,回退的目标版本之后提交的代码都没了,所以建议先把当前代码打个tag 首先找到分支的提交记录 git log 将代码回退到历史版本 git reset --hard 0f ...
随机推荐
- KingbaseES 全局索引
概述:在分区表上创建的索引可分为全局索引和本地索引.全局索引包括全局非分区索引(Global Nonpartitioned Indexes)和全局分区索引(Global Partitioned Ind ...
- 如何使用memstat 插件分析内存泄漏问题
对于内存泄漏问题,如何分析并找到内存泄漏的原因是个难点.KingbaseES 提供了memstat 扩展插件用于分析内存泄漏的原因. 一.使用 memstat 插件 1.修改shared_preloa ...
- mac_VMWare安装总结
MacOS 安装VmWare 总结 如果之前安装过virtualBox,virtualBox的内核扩展会影响到VmWare的使用 *比如会导致VMWare虽然可以安装,却无法创建虚拟机 这是需要执行以 ...
- 使用django_registration框架实现用户的注册与激活
1.前言 本节内容是在以下环境中实现的. python version: 3.7 Django version: 3.1.1 Django-registration version: 3.1.1 如版 ...
- 四、frp内网穿透服务端frps.ini各配置参数详解
[必须]标识头[common]是不可或缺的部分 [必须]服务器IPbind_addr = 0.0.0.00.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中 ...
- 如何从Django项目中删除或隐藏应用
1.项目的settings.py文件 INSTALLED_APPS中删除或者注释掉,这是针对数据库这一块儿的 2.项目的urls.py文件 删除或这注释掉应用的路径导入 urlpatterns中删除或 ...
- nginx日志参数及含义
参数含义 $remote_addr,$http_x_forwarded_for #记录客户端IP地址 $remote_user #记录客户端用户名称 $request #记录请求的URL和HTTP协议 ...
- 天翼云上新增IP备案具体操作步骤
0.点击右上角的备案,进入到备案中心 1.已备案信息管理 点击左侧的已备案信息管理,右侧出现的页面中找到已备案网站信息,网站负责人后面的操作里有5个图标,点击第三个(变更接入),提交订单,进入到下一步 ...
- python 代码执行顺序
Python代码在执行过程中,遵循下面的基本原则: 普通语句,直接执行: 碰到函数,将函数体载入内存,并不直接执行 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行 碰到if.for等控制语句 ...
- 在客户端电脑使用 kubectl 远程管理 Kubernetes
日常工作中,可能需要在自己的笔记本电脑上执行 kubectl 命令以管理远程 Linux 服务器上的 Kubernetes 集群.通过调用 kubernetes API 来实现对 Kubernetes ...
