git版本管理,有这一篇就够了(后端开发人员必备技能)
目录
一、定义:
二、两大特点:
三、常用命令:
四、分支管理:
五、git 要点小记:
六、终端如何生成github上的ssh公钥,gitlab通用(在家目录下操作)
七、克隆项目
八、不小心commit后如何撤销
九、多次commit如何合并成一个commit
一、定义:
开发项目时进行代码管理时常用的一个工具。
二、两大特点:
版本控制和分布式。
三、常用命令:
- git init #帮忙创建一个人版本库
- git add code.txt #在仓库添加了code.text这个文件
- git commit -m '版本1‘ #进行了提交
- #两个命令加起来才是创建了一个版本,’版本1‘是你所创建版本的一个说明信息。
- git log #查看创建的版本记录。
- (commit后有一串信息,它是你创建版本的序列号)
- git reset --hard HEAD^ #版本回退,如果想回到某一个版本可使用该命令。
- (HEAD^与HEAD~1等价,HEAD^表示当前版本的前一个版本,HEAD^^表示当前版本的前两个版本,HEAD~100表示当前版本的前100个版本,HEAD相当于一个指针)
- git reset --hard 版本序列号 #可以回到该序列号的版本。
- git reflog #可查看操作记录。
- (如果把终端关了,再打开终端,看不到版本号,可使用该命令)
- git checkout -- <文件>#丢弃工作区的改动
- git reset HEAD code.txt
- #如果将文件的修改已经加到暂存区了,还想丢弃改动可使用该命令,把暂存区的修改撤销,回到工作区,再使用丢弃工作区的改动命令。(若已经提交了不合适的修改到版本库,参考版本回退。)
- git diff HEAD -- code.txt
- #对比两个文件不同(输出内容中前面若无加号或减号则是两个文件都有的内容,带加号或减号的是文件所特有的,加代表工作区里的code.txt,减代表HEAD版本的code.txt)
- git diff HEAD HEAD^ -- code.txt #对比两个版本间某个文件不同
- rm code.txt #删除文件
- #若想丢弃改动 git checkout -- <文件>
- #若想在暂存区删除的文件再回来,先取消暂存,再checkout
- git log --pretty=oneline #以简短形式显示已创建版本记录
- git branch #查看有几个分支
- git checkout -b dev # 创建并切换到dev分支(带*表示你所在分支的位置)
- git checkout master #切换分支(master是你要切换到的分支名字)
- git merge dev #合并分支
- (将要合并的分支合并到当前分支,这种合并叫快速合并,直接把指针往前一挪)
- git branch -d dev #删除分支
- git branch <分支名字> #创建一个分支,不切换。
- git log --graph --pretty=oneline #可以查看分支提交的情况(图)
- git merge --no-ff -m '禁用 fast-foruard' dev #禁止快速合并,重新做一次新的提交
- git stash #保存
- git stash list #列出保存的工作现场
- git stash pop #恢复工作现场
四、分支管理:
分支是什么呢?就好比工厂里的流水线一样,HEAD先指向分支,分支再指向版本,默认有一个master分支。
五、git 要点小记:
- 每次更改后的版本只是在原版本上添加了新增的内容,新版本中只有新增内容。
- 工作区:电脑中的目录,比如git_test,就是一个工作区,也就是你git init的那个目录。
- .git :工作区有一个隐藏目录.git,这个是git的版本库,git 的版本库里存有很多东西,其中最重要的是stage(或叫index)的暂存区。
- 编辑文件都是在工作区,git add 是把在工作区的修改放到暂存区,git commit 是把暂存区的修改一次性做一次版本记录。
- 起冲突:两个分支都有了新的提交记录,并且修改的是同一个文件。
- bug分支:修复bug时,要禁止快速合并
六、终端如何生成github上的ssh公钥,gitlab通用(在家目录下操作)
可看到被保存到的路径,所以cd到.ssh/ 下
id_rsa是私钥,id_rsa.pub是公钥,cat一下复制公钥加入github的key中,title的名字可以自己起,如“xiaoxiao",最后点击Add SSH Key,大功告成。
七、克隆项目
- git clone 复制地址 #克隆项目
- git push origin 分支名称 #推送分支
- git branch --set-upstream-to=origin/smart smart #本地的smart分支跟踪远程的smater分支
- git pull origin 分支名称 #从远程分支上拉取代码
八、不小心commit后如何撤销
git log #查看自己的commit记录
git reset --soft HEAD^ #撤销commit记录
git log #已经没有commit记录了
九、多次commit如何合并成一个commit
- GIT有多个commit时,需要先进行git log
- 查看历史commit记录
- 回到要合并的commitID的上一个commitID
- 即复制粘贴commitID
- git rebase -I commitID
- 最上面的是最早提交的版本记录,所以将要合并的版本记录改为s,要合并到哪个版本的版本记录不变为pick
- 同理,最上面的logo_upload为最早的commit -m,将要的留下,不要的commit -m与#...都删除
- git push -f
- 成功记录如下:
综上所述,最妙的办法是杜绝这么多个commit的发生,可以使用git commit --amend
git版本管理,有这一篇就够了(后端开发人员必备技能)相关推荐
- 五⼤场景玩转 Git,只要这一篇就够了!
推荐阅读: 编程神器 VS Code,只要这一篇就够了! 自由软件江湖里的码头和规矩 自己动手写一个操作系统内核[内含视频] 在浏览器中输入网址按回车后发生了什么? 智能制造:从信息化到智能化 一文透 ...
- Git 教程看这一篇就够了
基础杂项 Git基础概念 * 客户端并不只是提取最新版本的文件快照,而是把代码仓库完整的镜像下来 * git核心本质上是一个键值对数据库.可以向该数据库插入任意类型的内容,他会返回一个键值,通过该值可 ...
- ❤️开发项目必备技能《Git用法集合》建议收藏❤️
Git用法集合 目录: 文章目录 Git用法集合 目录: 1.什么是版本控制 2.常见的版本控制工具 3.版本控制分类 4.Git与SVN的主要区别 5.软件下载 6.启动Git 7.常用的Linux ...
- Idea 中的 Git 操作看这一篇就够了(最全的讲解,文章比较长,截图比较多是为了说明问题)
环境部分略过 从0开始创建一个项目,用来讲解git,会包括创建远程新分支,回滚等操作. 在每一个讲解过程中都会有问题提问 基础部分讲解 实战高级部分 基础部分内容 如果在github上已有仓库 ...
- git命令看一这篇就够了
git最最基本命令(怎么克隆.上传) #(将远程仓库的代码克隆到本地) git clone + 远程仓库地址 #(将工作区的改动添加到暂存区) git add . #(将暂存区的文件提交到本地库) g ...
- Flink框架吐血总结,学习与面试收藏这一篇就够了,大数据必备知识体系
文章目录 Flink Flink 核心特点 Flink 应用 核心抽象 环境对象 数据流元素 Flink 异步IO 数据分区 窗口 实现原理 Watermark (水印) 内存管理 自主内存管理 内存 ...
- Cookie、Session、Token、JWT 看一篇就够了
目录 Cookie.Session.Token.JWT 看一篇就够了 什么是认证(Authentication) 什么是授权(Authorization) 什么是凭证(Credentials) 怎么让 ...
- Spring入门,看这篇就够了
Spring入门,看这篇就够了 文章目录 Spring入门,看这篇就够了 一. 初识Spring 二.Spring Framework系统架构 三.核心概念 1.IoC(inversion of co ...
- 【java面试】6万字最全Java知识体系梳理,还在找面试题?看这篇就够啦
文章目录 一.基础 1.1JVM 1.JVM五大内存区域 2.新生代和老年代 3.加载类的过程 4.OOM 5.JVM调优 1.2 GC 1.可达性分析 2.java中的引用 3.GC回收算法 4.G ...
最新文章
- win10 rabbitMQ的安装与测试
- Java虚拟机笔记(一):类加载机制
- HEVC视频编码技术
- ABAP 后台作业的一个状态查询工具
- c语言获取dll文件路径,C语言URLDownloadToFile获取文件下载进度
- easyui 修改单元格内容_jquery easyui datagrid实现增加,修改,删除方法总结
- 机器学习 Machine Learning中正则化的学习笔记~
- Linux下使用ffmpeg对视频截图
- html输入公式得到混合运算结果,EXCEL公式与函数教案
- 企业微信聊天记录如何转移到新手机上?
- 【腾讯TMQ】远程移动测试平台对比分析
- 操作系统动态分区分配方式C/C++语言(首次适应算法(FF)循环首次适应算法(NF)最best适应算法(BF)最坏适应算法(WF))
- 【读书】少有人走的路---自律(斯科特 派克)
- GEE学习笔记 五十四:QGIS展示3D的高程数据
- 数据库中的三种完整性:域、实体、参照完整性
- Unity小技巧——音频文件间断问题
- 【242期推荐】女程序员苛刻的征婚条件,男程序员不能输
- 读书笔记-独立女性有的良性焦虑
- android studio3.0——Error:All flavors must now belong to a named flavor dimension. Learn more at ...
- python 公司年会抽奖_公司年会抽奖程序-python
热门文章
- vb python excel_【Python3+VBA】在Excel中生成小姐姐
- 商学院·基础----02 不要为打翻的牛奶哭泣(沉没成本)
- 基于python网络爬虫天气_Python网络爬虫之中国天气网
- Python 基于sicpy求解定积分 ,不定积分以及多重积分
- csrf漏洞防御方案_CSRF原理实战及防御手段
- App 抓包利器:Charles 以及 App 爬虫心得
- 【目标检测-YOLO】YOLOv5-yolov5s TensorRT部署准备之ONNX导出(第一篇)
- python面向对象爬取某鱼颜值区主播图片
- 数据治理的数据流程整合
- 重装系统服务器不识别u盘,电脑使用u盘重装系统无法识别怎么办?