.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 常规操作

Git完整操作流程


创建分支

  • .gitignore文件

    选择哪些文件不需要git进行上传(版本管理,前端项目一般是nodemodules文件
  • git clone 的是dev的分支,怎么提交到other分支

    1. git branch -m oldBranch newBranch (切换分支: git branch -m dev function/hasdone)
    2. git push -u origin function/hasdone (push 的时候页更新一下分支)

    git clone -b xxx 拉取指定xxx分支的代码

  • git checkout -b 本地分支名 origin/远程分支名

    创建并指定特定远程分支
  • git branch -d 指定分支名 删除该分支

  • git push origin 指定分支名(如没有则新建)


命令行 diff 代码

  1. diff展示指定文件差异:git diff xxx文件

  2. 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回退到历史版本

    1. git log --pretty=oneline : 找一个需要回到的版本hash号
    2. git reset --hard 版本hash 号

代码回退

    情况1、只在本地工作区(workspace)新增了文件A,状态为untrack
    • 删除 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
    情况2、只在本地工作区(workspace)修改了文件A(包括删除文件A),但还没有使用 git add 把A的修改暂存到暂存区(index),状态为Changes not staged for commit
    • 撤回所有修改:git checkout .
    • 撤回指定文件的修改:git checkout -- xxx文件
    情况3、已经使用git add暂存了本地修改,状态为Changes to be committed:
    • 撤回所有暂存修改:git reset head .
    • 撤回指定文件的修改:git reset head -- xxx文件
    情况4、已经使用git commit暂存了本地修改,状态为Your branch is ahead of ***
    • 如上文回退版本所示,强制回退到上一个版本:git reset --hard head^

      • 返回到某个节点,不保留修改 :git reset --hard commit_id,commit_id通过git log 查看
      • 返回到某个节点,保留修改 :git reset --soft commit_id

完整提交流程:

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代码、回退版本、撤回代码,学废了吗的更多相关文章

  1. 通过Tag标签回退版本修复bug

    tag是对历史一个提交id的引用,如果理解这句话就明白了使用git checkout tag即可切换到指定tag,例如:git checkout v0.1.0 切换到tag历史记录会处在分离头指针状态 ...

  2. Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

    Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下G ...

  3. git回退版本: 回退本地代码版本 + 回退服务器代码版本

    1.回退本地代码版本 借助IDEA开发工具回退版本,点击Version Control ,查看历史版本号: 右击想要回退的版本号,选择Reset Current Branch hear... 选择 H ...

  4. git的使用(包括创建远程仓库到上传代码到git的详细步骤以及git的一些常用命令)

    A创建远程仓库到上传代码到git 1)登陆或这注册git账号 https://github.com 2)创建远程仓库 3)打开终端输入命令 cd到你的本地项目根目录下,执行如下git命令 git in ...

  5. Git学习(二)——创建版本库、查看与回退版本

    一.创建版本库 版本库,又名仓库(Repository),可以简单理解为一个目录,这个目录里的所有文件可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者将来某 ...

  6. git创建远程项目并进行代码管理及相关命令

    1.windows下载Git     https://git-scm.com/downloads 然后一路点击安装 2.登录github,点击右上角创建仓库 3.在本地项目根目录下 输入如下命令 ss ...

  7. git代码回退

    情况1.还没有push可能 git add ,commit以后发现代码有点问题,想取消提交,用: reset git reset [--soft | --mixed | --hard] eg:  gi ...

  8. Git 如何优雅地回退代码

    前言 从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码.提交.合并等,更复杂的操作没有使用过, ...

  9. GIT如何根据历史记录回退代码

    ps: 因为使用这种方式回退后,回退的目标版本之后提交的代码都没了,所以建议先把当前代码打个tag 首先找到分支的提交记录 git log 将代码回退到历史版本 git reset --hard 0f ...

随机推荐

  1. NOI 2019 省选模拟赛 T1【JZOJ6082】 染色问题(color) (多项式,数论优化)

    题面 一根长为 n 的无色纸条,每个位置依次编号为 1,2,3,-,n ,m 次操作,第 i 次操作把纸条的一段区间 [l,r] (l <= r , l,r ∈ {1,2,3,-,n})涂成颜色 ...

  2. [HDU1812] Count the Tetris - polya定理

    题面 Problem Description 话说就是因为这个游戏,Lele已经变成一个名人,每当他一出现在公共场合,就有无数人找他签名,挑战. 为了防止引起社会的骚动,Lele决定还是乖乖呆在家里. ...

  3. Spring的俩大核心概念:IOC、AOP

    1.Spring 有两个核心部分: IOC 和 Aop (1)IOC:控制反转,把创建对象过程交给 Spring 进行管理   (2)Aop:面向切面,不修改源代码进行功能增强 2.Spring 特点 ...

  4. Spring 源码学习笔记11——Spring事务

    Spring 源码学习笔记11--Spring事务 Spring事务是基于Spring Aop的扩展 AOP的知识参见<Spring 源码学习笔记10--Spring AOP> 图片参考了 ...

  5. KingbaseES 如何把一个schema下的所有对象访问权限授权给其他用户

    用户需求:新建一个用户 B,需要能够查询A用户的所有表,并且对以后新建的表也要有select权限. 问题分析:对于现有的表可以通过动态sql批量进行授权,但是未来新建的表要如何进行授权呢? 查询了帮助 ...

  6. Spring源码学习笔记12——总结篇,IOC,Bean的生命周期,三大扩展点

    Spring源码学习笔记12--总结篇,IOC,Bean的生命周期,三大扩展点 参考了Spring 官网文档 https://docs.spring.io/spring-framework/docs/ ...

  7. shell脚本自动化部署Zabbix4.2(修改脚本替换版本)

    #!/bin/bash # 检查操作系统版本,该脚本只能运行在 Centos 7.x 系统上 cat /etc/redhat-release |grep -i centos |grep '7.[[:d ...

  8. 中秋快乐!新鲜出炉一篇DjangoAdmin使用合集,DjangoAdmin的功能比你想象的强大!

    DjangoAdmin DjangoAdmin本身就是一套大而全的系统,官方文档中介绍了很多配置方法,但仍然有大量的骚操作是文档中没有的,所以遇到特殊需求的时候,求助文档不一定有用. 在我看来 Dja ...

  9. 如何干涉MySQL优化器使用hash join

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 前言 实验 总结 前言 数据库的优化器相当于人类的大 ...

  10. 输入法词库解析(四)百度分类词库.bdict(.bcd)

    前言 .bdict 是百度的分类词库格式,可以在 https://shurufa.baidu.com/dict 下载. 手机百度的分类词库格式 .bcd 是一样的,可以在 https://mime.b ...