Git理解和入门学习(第一天)

本文介绍了Git作为分布式版本控制系统与集中式SVN的区别,强调了Git的分布式特性带来的优势,如断网开发支持和快速回滚。同时,概述了Git的基本指令,包括配置、初始化、版本控制等,并提及了Linux基础命令。文章总结了Git在版本控制方面的优越性,适合初学者入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

1- Git简介

  1. Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  2. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  3. Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

2- 什么是版本控制?

  • 版本控制是一种记录一个或若干文件内容变化

  • 以便将来查阅特定版本修订情况的系统

  • 将每一次的变化记录下来

  • 在未来可对每一次保存的版本进行更新和回退
    这就是版本控制


3- 为什么要使用版本控制?

  • 软件开发中采用版本控制系统是个明智的选择。

  • 有了它你就可以将某个文件回溯到之前的状态。

  • 甚至将整个项目都回退到过去某个时间点的状态

  • 就算你乱来一气把整个项目中的文件改的改删的删,

  • 你也照样可以轻松恢复到原先的样子。且额外增加的工作量却微乎其微

(它很方便,且很强大!)

  • 你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异的问题出现的原因,又是谁在何时报告了某个功能缺陷等等。

4- Git与SVN的区别

Git和SVN都是版本控制系统工具
个人理解:Git其实就是不把鸡蛋放在同一个篮子里

  • Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,
    例如 SVN,CVS 等,最核心的区别。

  • Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统
    都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

  • Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,
    其实它就是版本库中的另外一个目录。

  • Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

  • Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。
    这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

a. 集中式(SVN)

svn因为每次存的都是差异 需要的硬盘空间会相对的小一点  可是回滚的速度会很慢
优点: 
    代码存放在单一的服务器上 便于项目的管理
缺点: 
	网断了就没法上传:需要手动来做版本控制(复制粘贴存放)不方便
    服务器宕机: 员工写的代码得不到保障
    服务器炸了: 整个项目的历史记录都会丢失

b. 分布式(Git)

git每次存的都是项目的完整快照,需要的硬盘空间会相对大一点(只多了一点点,它是压缩才存储的)

快照:(快照是指向保存在存储设备中的数据的引用标记或指针。我们可以这样理解,快照有点像是详
细的目录表,但它被计算机作为完整的数据备份来对待)

分布式的版本控制系统在管理项目时 存放的不是项目版本与版本之间
的差异.它存的是索引(所需磁盘空间很少 所以每个客户端都可以放下整个
项目的历史记录)

(Git团队对代码做了极致的压缩 最终需要的实际空间比svn多不了太多 可是Git的回滚速度极快)
优点:
    完全的分布式
缺点:    
    学习起来比SVN陡峭

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

1. 断网的情况下也可以进行开发 (因为版本控制是在本地进行的)

2. 使用github进行团队协作
哪怕github挂了每个客户端保存的也都是整个完整的项目
(包含历史记录的!!!)


5- Git指令(掌握)

第一次要使用Git,就要配置用户名字信息和用户邮箱信息

成功修改之后,可在配置列表查看

git基础指令

指令作用 效果
git config --global user.name ‘名字’初始化配置用户名字信息
git config --global user.email 邮箱初始化配置用户邮箱
git config --list初始化配置列表查看
git --version查看git版本
git initgit初始化
git status检测当前文件状态
git add 文件名将文件加入管理
git add .将所有文件加入管理
git commit -m 'v1’生成版本

注意:git窗口和dos窗口是有本质区别的


6- Git区域

​ 1. 工作区

你在工作区做修改,git不会有实质性的操作

​ 2. 暂存区

一些小方面的修改,放入暂存区,当暂存区存入一定程度,再转入版本库

​ 3. 版本库

用来存放版本快照


7- Git底层概念基础linux命令(了解)

基础的linux命令

基本Linux指令作用效果
clear清除屏幕
echo 'test content’往控制台输出信息 echo ‘test content’ > test.txt
ll将当前目录下的 子文件&子目录平铺在控制台
find 目录名将对应目录下的子孙文件&子孙目录平铺在控制台
find 目录名 -type f将对应目录下的文件平铺在控制台
rm 文件名删除文件
mv 源文件 重命名文件重命名
cat 文件名查看对应文件的内容
vim 文件名 (在英文模式下)按 i 进插入模式 进行文件的编辑
vim 文件名 (在英文模式下)按 esc 键&按:键 进行命令的执行
vim 文件名 (在英文模式下)q! 强制退出(不保存)
vim 文件名 (在英文模式下)wq 保存退出
vim 文件名 (在英文模式下)set nu 设置行号

8- 初始化新仓库

命令:git init

​ **解析:**要对现有的某个项目开始用Git管理

​ 只需到此项目所在的目录,执行:git init

​ **作用:**初始化后,在当前的目录下会出现一个名为 .git 的目录,

​ 所有Git需要的数据和资源都存放在这个目录中。

​ 不过目前,仅仅是按照既有的结构框架初始化好了里面所有的文件和目录,但我们还没有开始跟踪管理项目中的任意一个文件.

了解

9- .git目录内文件说明

.git目录 中的文件

目录名目录包含信息
hooks目录包含客户端或服务端的钩子脚本
info包含一个全局性排除文件
logs保存日志信息
objects目录存储所有数据内容
refs目录存储指向数据的提交对象的指针(分支)
config文件包含项目特有的配置选项
description用来显示对仓库的描述信息
HEAD文件指示目前被检出的分支
index文件保存暂存区信息

今日总结

SVN和Git都是版本控制系统的工具
Git的分布式管理是Git较于SVN的优胜点之一
且Git回滚速度快于SVN.相较于SVN,Git在版本控制这方面强大的功能已经完胜
(Git YYDS)
学习了Git的基础指令,以及了解了Linux的一些基础指令
对初始化指令git init 后生成.git目录内文件的了解
github就是git的中央服务器
GitHub是一个远端仓库,当公司遇到什么大型的疑难BUG后
可以通过GitHub来发送远程求助,最终达到一个解决问题的目的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值