Git 基础知识回顾及 SVN 转 Git 自测

news2024/11/25 18:56:38

背景

项目开发过程中使用的版本控制工具是 SVN,Git 多有耳闻,以前也偶尔玩过几次,但是工作中不用,虽然本地也有环境,总是不熟练。

最近看一本网络开源技术书时,下载源码部署了一下,又温故了一下 Git 的用法,思考一个问题:如果现在我们的版本控制工具从 SVN 转换到 Git,我能不能直接上手呢?

本文汇总一下 Git 的基础知识和转换需要的基本流程,要上手也是没问题,资料来源于网络,说实话,资源真是多啊,如果真要换 Git ,现学现用足够了。

Git 原理

  1. Git 是什么?Linux 的源代码版本控制工具,在 BitKeeper 收费后,该团队自己开发的一个版本控制工具。
  2. Git 和 SVN 的区别是什么?存储方式不同。
    Git 存储的是全量快照:
    在这里插入图片描述
    途中的虚线是指相对上个版本没变化的文件,那么它就只存储一个指向上个版本的指针,其他变化的文件作为本版本的文件。而 SVN 保存的差异信息:
    在这里插入图片描述
    版本 V2 记录了相对 V1的增量变化内容。

Git 的基本思想:

  • 分布式版本控制工具,每个主机上的本地仓库都是一个节点,commit 也只是提交到本地仓库的,然后通过 push 到原创共享仓库
  • 直接记录快照,而非差异比较。
  • 近乎所有的操作都在本地执行,除了推送操作外。
  • 时刻保持数据的完整性。
  • 多数操作都是添加数据的操作。
  • 文件的三种状态:CMS「客户管理系统缩写记住它们」(Commit、Modified、Stated)

Git 操作

Git 的常用操作:

  • git init
  • git clone
  • git add
  • git commit
  • git pull
  • git fetch :与 git pull 的区别是,不会自动合并,用于需要人工比对差异的情况,然后再手动执行 merge。相当于查看变动,如果没有冲突或者没有问题,就可以直接执行 pull 拉取操作了。
  • git push
  • git log
  • git status
  • git config

Git 的换行配置

  • LF:line feed(单个字符\n),Linux 下的换行符号,含义:换行。
  • CRLF:carriage return line feed(回车换行,两个字符:\r\n),Windows下的换行符号。

LF 和 CRLF 的历史遗留故事,Windows 操作系统和 Linux 操作系统的差异为版本控制带来的问题。

解决办法是配置 core.autocrlf

true :最初的换行符号提交到 Linux 上了,都是 LF,但是下载到本地的时候,自动转换为 CRLF,为了 Windows 系统而推荐的配置。

input:所见即所得,适合 Linux 和 macOS。

结论就是:在 Window 主机上的配置应该为 true ,自动处理行尾,在 Linux 或 MAC 上设置为 input ,所见即所得,本地获取时不处理行尾。

SVN 日常操作

本地使用的 SVN 工具是 SnailSVN,日常基本操作有:

  1. 检出
  2. 更新
  3. 提交
  4. 查看日志
  5. 变更比对

Git 工具

Git 的也有图形化工具 SourceTree,界面很清爽,对比 SVN 的日常操作,有这个工具就够了,尤其是它能直接在界面上显示待提交的文件变化:
在这里插入图片描述
这个功能太好了,尤其是我在 SVN 使用的时候,都是在文件目录下逐个对比差异的。

直接找到 SourceTree 的工程路径,然后在 IDEA 中打开就可以了,所有的修改状态自动对应到当前选中的分支上。

论工具的使用,本人还是属于熟练工的一种吧!各种技术、工具啊,真的是够多的,像我这种只会用工具、抽象创造力匮乏的人,算不上科技人才吧,妥妥的工具人!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1179395.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

socket编程中的EINTR是什么?

socket编程中的EINTR是什么? 在socket编程中&#xff0c;我们时常在accept/read/write等接口调用的异常处理的部分看到对于EINTR的处理&#xff0c;例如下面这样的语句&#xff1a; repeat: if(read(fd, buff, size) < 0) {if(errno EINTR)goto repeat;elseprintf("…

时间序列预测中的数据分析->周期性、相关性、滞后性、趋势性、离群值等特性的分析方法

本文介绍 本篇文章给大家介绍的是&#xff0c;当我们在进行有关时间序列相关的工作或者实验时&#xff0c;需要对数据进行的一些数据分析操作(包括周期性、相关性、滞后性、趋势性、离群值等等分析)的方法。在本篇文章中会以实战的形式进行讲解&#xff0c;同时提供运行代码和…

求1~100000之间所有的“水仙花数”,并输出

这里所指的水仙花数&#xff0c;并不是严格意义上的水仙花数&#xff0c;我们先查看一下水仙花数是什么 水仙花数&#xff08;Narcissistic number&#xff09;也被称为超完全数字不变数&#xff08;pluperfect digital invariant, PPDI&#xff09;、自恋数、自幂数、阿姆斯壮…

IOC容器创建bean实例的4种方式

&#x1f388;个人公众号:&#x1f388; :✨✨✨ 可为编程✨ &#x1f35f;&#x1f35f; &#x1f511;个人信条:&#x1f511; 知足知不足 有为有不为 为与不为皆为可为&#x1f335; &#x1f349;本篇简介:&#x1f349; 本篇记录IOC容器创建bean实例的4种方式&#xff0c;…

mysql联合索引和最左匹配问题。

1引言&#xff1a; 如果频繁地使⽤相同的⼏个字段查询&#xff0c;就可以考虑建⽴这⼏个字段的联合索引来提⾼查询效率。⽐如对 于联合索引 test_col1_col2_col3&#xff0c;实际建⽴了 (col1)、(col1, col2)、(col, col2, col3) 三个索引。联合 索引的主要优势是减少结果集数量…

深入理解Python中的布尔值:真与假

Python作为一门强大的编程语言&#xff0c;具有丰富的数据类型和逻辑运算&#xff0c;其中布尔&#xff08;Boolean&#xff09;值在控制程序流程和逻辑决策中扮演着关键的角色。本文将深入探讨Python中的布尔值&#xff0c;解释什么是真&#xff08;True&#xff09;和假&…

pytorch加载的cifar10数据集,到底有没有经过归一化

pytorch加载cifar10的归一化 pytorch怎么加载cifar10数据集torchvision.datasets.CIFAR10transforms.Normalize()进行归一化到底在哪里起作用&#xff1f;【CIFAR10源码分析】 torchvision.datasets加载的数据集搭配Dataloader使用model.train()和model.eval() pytorch怎么加载…

Paste v4.1.2(Mac剪切板)

Paste for Mac是一款运行在Mac OS平台上的剪切板小工具&#xff0c;拥有华丽的界面效果&#xff0c;剪切板每一条记录可显示&#xff08;预览&#xff09;文本&#xff0c;图片等记录的完整内容&#xff0c;可以记录最近指定条数的剪切板信息&#xff0c;方便用户随时调用&…

输电线路AR可视化巡检降低作业风险

随着现代工业的快速发展&#xff0c;各行业的一线技术工人要处理的问题越来越复杂&#xff0c;一些工作中棘手的问题迫切需要远端专家的协同处理。但远端专家赶来现场往往面临着专家差旅成本高、设备停机损失大、专业支持滞后、突发故障无法立即解决等痛点。传统的远程协助似乎…

Emacs之高亮显示超过80个字符部分(一百三十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Linux入门知识

​ 文章目录 一、Linux发展历程1.1、Linux前身-Unix1.2、Linux 诞生 二、Linux系统特点三、Linux 分支四、Linux系统架构4.1、系统调用4.2、Linux shell4.3、Linux文件系统4.4、Linux内核 团队博客: 汽车电子社区 一、Linux发展历程 1.1、Linux前身-Unix 1968年Multics 项目…

【Excel】如何画不同时序交叉的百分比堆积柱状图

这里写自定义目录标题 1 将两表交叉合并为一个表1.1 步骤一&#xff1a;在两独立表的工作天数和工资列下面按1-n顺次标号。1.2 步骤二&#xff1a;选中两表需要合并的部分&#xff0c;调出自定义排序1.3 步骤三&#xff1a;选项 ——> 按行排序 &#xff08;选完后点确定&am…

LV.12 D17 中断控制器 学习笔记

一、中断控制器 在处理IRQ的时候&#xff0c;会将CPSR写入IRQ_SPSR&#xff0c;然后将CPU切换为IRQ模式&#xff0c;把状态改成ARM状态&#xff0c;把I位写成1禁止全部的IRQ&#xff0c;所以中断这样是我们不想要的。4412是一个四核的CPU&#xff0c;在发送中断前要确定发送给哪…

【UDS基础】简单介绍“统一诊断服务“

1. 前言 我们将在这个实用教程中介绍UDS的基础知识,重点关注在CAN总线上的UDS(UDSonCAN)和CAN诊断(DoCAN)。此外,我们还会介绍ISO-TP协议,并解释UDS、OBD2、WWH-OBD和OBDonUDS之间的差异。 最后,我们将解释如何请求、记录和解码UDS消息,并提供一些实际示例,例如记录…

libevent

libevent 库概念和特点 开源。精简。跨平台&#xff08;Windows、Linux、maxos、unix&#xff09;。专注于网络通信&#xff08;不一定非用在网络当中&#xff0c;比如下面的读写管道&#xff09;。 libevent特性&#xff1a;基于"事件"&#xff0c;面向“文件描述符…

C++算法:第N位数的原理、源码及测试用例

本文涉及知识点 简单的数学知识。 本博文对应源码&#xff0c;审核比较慢&#xff0c;请耐心等待&#xff1a;https://download.csdn.net/download/he_zhidan/88504919 本博文在CSDN 学院有对应课程。 题目 给你一个整数 n &#xff0c;请你在无限的整数序列 [1, 2, 3, 4, 5…

编译原理(1)----LL(1)文法(首符号集,后跟符号集,选择符号集)

一.首符号集&#xff08;First()&#xff09; 技巧&#xff1a;找最左边可能出现的终结符 例&#xff1a; 1.First(E) E->T,最左边为T&#xff0c;又因为T->F,最左边为F&#xff0c;F->(E)|i,则最左边为{&#xff08;&#xff0c;i } 2.First(T):只需要看符号串最左…

Mac VsCode g++编译报错:不支持C++11语法解决

编译运行时报错&#xff1a; [Running] cd “/Users/yiran/Documents/vs_projects/c/” && g 1116.cpp -o 1116 && "/Users/yiran/Documents/vs_projects/c/"1116 1116.cpp:28:22: warning: range-based for loop is a C11 extension [-Wc11-extensi…

pda条码二维码扫描数据采集安卓手持终端扫码热敏标签打印一体机

HT800新一代移动物联终端是深圳联强优创信息科技有限公司自主研发的基于Android11操作系统的高性能、高可靠的工业级手持数据终端&#xff0c;能与其它设备进行无线通讯&#xff0c;提供良好的操作界面&#xff0c;支持条码扫描、RFID读写&#xff08;NFC&#xff09;、GPS定位…

ch579串口编程笔记

“CH579SFR.h”库文件&#xff0c;关于串口中断部分 /* UART interrupt identification values for IIR bits 3:0 */ #define UART_II_SLV_ADDR 0x0E // RO, UART0 slave address match #define UART_II_LINE_STAT 0x06 // R…