首页 > 其他分享 >Git创建、diff代码、回退版本、撤回代码,学废了吗

Git创建、diff代码、回退版本、撤回代码,学废了吗

时间:2022-11-12 23:35:02浏览次数:73  
标签:git branch1 -- 代码 学废 Git diff commit 分支

GIT 运行流程图

GIT 常规操作

Git完整操作流程

  • Git bug分析

创建分支

  • .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四种基础状态

image



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,branch1,--,代码,学废,Git,diff,commit,分支
From: https://www.cnblogs.com/lhx9527/p/16879739.html

相关文章

  • Git保姆级教程,适用于各种应用场景(持续更新中。。。)
    Git各种应用场景的保姆级使用方法(持续更新。。。)写这篇博客的原因:​ 本人因课程的要求,需大量使用git的语法,因此记录遇到的各种场景以及解决方法1、如何在本地创建仓库......
  • ffmpeg一些笔记: 代码调试数据
    1.AAC,MP3他的解码数据格式不支持,程序中给的是这个AV_SAMPLE_FMT_FLTP, Screen-Cpature-Recoder的codec-id为AV_CODEC_RAW_VIDEO,virtual-audio-capturer的codec-id为AV_......
  • 分享Github上10个比较优秀的开源项目给大家收藏下!!!
    Web开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,那么有哪些优秀的开源免费的控制面......
  • Git分支
        几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新功能,以免影响开发主线。 1.......
  • 图学习【参考资料2】-知识补充与node2vec代码注解
    本项目参考:https://aistudio.baidu.com/aistudio/projectdetail/5012408?contributionType=1*一、正题篇:DeepWalk、word2vec、node2vec其它相关项目:关于图计算&图学习......
  • git常用命令
    1.Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。工作目录:仓库中除了.git外的其他目录(文件夹)  (1)......
  • Git获取本地仓库
    要使用Git对代码进行版本控制,首先要获得本地仓库。(1)在电脑任意位置创建一个空目录(文件夹),作文本地Git仓库(2)进入到这个目录,右键打开Gitbash窗口(3)执行命令gitinit目的:初......
  • Git概述
    1.在开发中的实际应用场景(借助版本控制解决,在每次修改给一个版本号)(1)备份;(2)代码还原;(3)协同开发;(4)追溯问题代码的编写人和编写时间。 2.版本控制器的方式(1)集中式版本控......
  • 李峋的爱心代码[转载]
    1<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">2<HTML>3<HEAD>4<TITLE>❤......
  • IDEA中设置快捷键注释紧随代码后,而不是在代码首部
    设置之前:设置之后:设置方法:file-settings-Editor-CodeStyle-Java-CodeGeneration中,将图示框两处的勾选去掉就可以了......