【Linux】:初识git || centos下安装git || 创建本地仓库 || 配置本地仓库 || 认识工作区/暂存区(索引)以及版本库

news2024/10/1 17:35:42

在这里插入图片描述
在这里插入图片描述

📮1.初识git

Git 原理与使用
课程⽬标
• 技术⽬标:掌握Git企业级应⽤,深刻理解Git操作过程与操作原理,理解⼯作区,暂存区,版本库的含义
• 技术⽬标:掌握Git版本管理,⾃由进⾏版本回退、撤销、修改等Git操作⽅式与背后操作原理
• 技术⽬标:掌握Git分⽀管理,从分⽀创建,切换,合并,删除的整个⽣命周期,灵活进⾏各种场景下的分⽀管理,学习常⻅分⽀管理策略
• 技术⽬标:掌握Git远程仓库与本地仓库,结合版本管理与分⽀管理,做到基于分⽀级的个⼈级开发
• 技术⽬标:理解分布式版本控制系统,学习远程仓库与本地仓库的交互操作,掌握多⼈协作开发模式
• 协作⽬标:学习企业级常⻅分⽀策略(master/release/develop/feature/hotfix等),理解不同公司,不同环境下适合的分⽀模型。结合案例,引⼊⼯程师,测试⼈员,技术经理等⻆⾊,展现项目开发过程的全貌,深刻理解开发的整体流程,俯视Git在其中的作⽤

提出问题
不知道你⼯作或学习时,有没有遇到这样的情况:我们在编写各种⽂档时,为了防⽌⽂档丢失,更改失误,失误后能恢复到原来的版本,不得不复制出⼀个副本,⽐如:
“报告-v1”
“报告-v2”
“报告-v3”
“报告-确定版”
“报告-最终版”
“报告-究极进化版”

每个版本有各⾃的内容,但最终会只有⼀份报告需要被我们使⽤
但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越多,⽂件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各⾃都是修改了什么吗?
⽂档如此,我们写的项⽬代码,也是存在这个问题的!!

如何解决–版本控制器
为了能够更⽅便我们管理这些不同版本的⽂件,便有了版本控制器。所谓的版本控制器,就是能让你了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业
⽬前最主流的版本控制器就是Git。Git可以控制电脑上所有格式的⽂件,例如doc、excel、dwg、dgn、rvt等等。对于我们开发⼈员来说,Git最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!

注意事项
还需要再明确⼀点,所有的版本控制系统,Git也不例外,其实只能跟踪⽂本⽂件的改动,⽐如TXT⽂件,⽹⻚,所有的程序代码等等。版本控制系统可以告诉你每次的改动,⽐如在第5⾏加了⼀个单词“Linux”,在第8⾏删了⼀个单词“Windows”。⽽图⽚、视频这些⼆进制⽂件,虽然也能由版本控制系统管理,但没法跟踪⽂件的变化,只能把⼆进制⽂件每次改动串起来,也就是只知道图⽚从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道

🎯2.Git安装

Git是开放源代码的代码托管⼯具,最早是在Linux下开发的。开始也只能应⽤于Linux平台,后⾯慢慢的被移植到windows下,现在,Git可以在Linux、Unix、Mac和Windows这⼏⼤平台上正常运⾏了
Linux-centos
如果你的的平台是centos,安装git相当简单,以我的centos7.6为例:
⾸先,你可以试着输⼊Git,看看系统有没有安装Git:

$ git
-bash: git: command not found

出现像上⾯的结果,Linux会友好地告诉你Git没有安装。
安装Git:

 sudo yum -y install git

查看Git安装的版本:

git --version

Linux-ubuntu
如果你的的平台是ubuntu,安装git相当简单,以我的ubuntu20.04为例:
⾸先,你可以试着输⼊git,看看系统有没有安装Git:

$ git
Command 'git' not found, but can be installed with:
sudo apt install git

出现像上⾯的结果,Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git
安装Git:

1 $ sudo apt-get install git -y

查看git安装的版本:

$ git --version

🎯3.Git基本操作——创建Git本地仓库

要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来
创建⼀个Git本地仓库对应的命令为 git init ,注意命令要在⽂件⽬录下执⾏,例如:

hyb@139-159-150-152:~/gitcode$ pwd
/home/hyb/gitcode
hyb@139-159-150-152:~/gitcode$ git init
Initialized empty Git repository in /home/hyb/gitcode/.git/
hyb@139-159-150-152:~/gitcode$ ll -a
total 12
drwxrwxr-x 3 hyb hyb 4096 May 5 15:49 ./
drwxr-xr-x 13 hyb hyb 4096 May 5 15:47 ../
drwxrwxr-x 7 hyb hyb 4096 May 5 15:49 .git/

我们发现,当前⽬录下多了⼀个 .git 的隐藏⽂件, .git ⽬录是Git来跟踪管理仓库的,不要⼿动修改这个⽬录⾥⾯的⽂件,不然改乱了,就把Git仓库给破坏了
其中包含Git仓库的诸多细节,有兴趣的同学可以进⼊看看

hyb@139-159-150-152:~/gitcode$ tree .git/
.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── fsmonitor-watchman.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── pre-merge-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ ├── pre-receive.sample
│ └── update.sample
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
9 directories, 16 files

配置Git
当安装Git后⾸先要做的事情是设置你的⽤⼾名称和e-mail地址,这是⾮常重要的。配置命令为:

git config [--global] user.name "Your Name"
git config [--global] user.email "email@example.com"
# 把 Your Name 改成你的昵称
# 把 email@example.com 改成邮箱的格式,只要格式正确即可

其中 --global 是⼀个可选项。如果使⽤了该选项,表⽰这台机器上所有的Git仓库都会使⽤这个配置。如果你希望在不同仓库中使⽤不同的 name 或 e-mail ,可以不要 --global 选项,但要注意的是,执⾏命令时必须要在仓库⾥
查看配置命令为:

git config -l

删除对应的配置命令为:

git config [--global] --unset user.name
git config [--global] --unset user.email

🎹4.认识⼯作区/暂存区(索引)/版本库

⼯作区:是在电脑上你要写代码或⽂件的⽬录
• 暂存区:英⽂叫stage或index。⼀般存放在 .git ⽬录下的index⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)
• 版本库:⼜名仓库,英⽂名 repository 。⼯作区有⼀个隐藏⽬录 .git ,它不算⼯作区,⽽是Git的版本库。这个版本库⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
下⾯这个图展⽰了⼯作区、暂存区和版本库之间的关系:
在这里插入图片描述
图中左侧为⼯作区,右侧为版本库。Git的版本库⾥存了很多东西,其中最重要的就是暂存区
• 在创建Git版本库时,Git会为我们⾃动创建⼀个唯⼀的master分⽀,以及指向master的⼀个指针叫HEAD。(分⽀和HEAD的概念后⾯再说)
• 当对⼯作区修改(或新增)的⽂件执⾏ git add 命令时,暂存区⽬录树的⽂件索引会被更新。
• 当执⾏提交操作 git commit 时,master分⽀会做相应的更新,可以简单理解为暂存区的⽬录树才会被真正写到版本库中
由上述描述我们便能得知:通过新建或粘贴进⽬录的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件。必须要通过使⽤ git add 和 git commit 命令才能将⽂件添加到仓库中进⾏管理!!!
在这里插入图片描述

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

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

相关文章

vue3中生命周期函数

CSDN文章质量分数查询:https://www.csdn.net/qc 前言: Vue.js由于其丰富的API和灵活易用等特性,能够帮助我们快速构建单页应用程序,,是目前最受欢迎的javascript框架之一。 再过去几年里,我们一直停留在Vu…

多维时序 | MATLAB实现TCN时间卷积神经网络多变量时间序列预测

多维时序 | MATLAB实现TCN时间卷积神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现TCN时间卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现TCN时间卷积神经网络多变量时间序列预测 模型描述 MATLAB实现TCN时间卷…

用户缓冲区概念

先看现象,printf / fprintf / fwrite 一定封装了write , 但是执行代码看到大家都是去掉\n 和close(1),库函数无法打印,write可以 你不是说的库函数封装了write,怎么打印不出来? 如果执行这两句代码你会发现程序会等待一会最后结…

入门自动化测试框架知识,读这一篇就够了!

自动化测试因其节约成本、提高效率、减少手动干预等优势已经日渐成为测试人员的“潮流”,从业人员日益清楚地明白实现自动化框架是软件自动化项目成功的关键因素之一。本篇文章将从什么是真正的自动化测试框架、自动化脚本如何工作以及自动化测试框架会如何在测试过…

【Mybatis】3 的操作类型对象

前言知识汇总 上篇文章中我们已经详细介绍了Mybatis的存储类对象。我们上篇提到了: Mapper.xml当中的SQL标签都被解析成了一个一个的MappedStatement对象。那么我们当中的SQL是基于什么形式进行封装的呢? 我们要知道,Java当中一切皆对象。M…

工业路由器网关的网络协议之NAT技术

在物联网通讯领域,NAT技术能将内网的一个私有IP转换成一个公网IP去接入互联网,解决组建局域网络时私有IP地址无法在公网上进行路由的问题。 NAT(Network Address Translation)的三种方式: 静态NAT 1、一个私有IP对应…

【form校验】3.0项目多层list嵌套

const { required, phoneOrMobile } CjmForm.rules; export default function detail() {const { query } getRouterInfo(location);const formRef useRef(null);const [crumbList, setCrumbList] useState([{url: "/wenling/Reviewer",name: "审核人员&quo…

Cesium 展示——将每个点和点所在线段进行关联

文章目录 需求分析1. 数据结构2. 点线绘制3. ID获取4. 进行关联需求 点的集合和线的集合已知,现需将每个点和每个点所在的关联的线进行关联起来 输入 输出 分析 1. 数据结构 l

Mac平台文件传输工具Transmit 5

Transmit 是一款由Panic开发的文件传输软件,它可以帮助用户在不同的服务器间进行文件传输。Transmit 支持多种协议,包括FTP、SFTP、WebDAV等,同时它也内置了一个强大的文件管理器,可以方便地对文件进行管理和操作。 Transmit 的界…

分享86个节日庆典PPT,总有一款适合您

分享86个节日庆典PPT,总有一款适合您 链接:https://pan.baidu.com/s/1oE2LIr6en4js9L0fzUyqgw?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。知识付费甚欢…

web —— css(1)

Web —— css基础 1. CSS样式表2. CSS的三种引入方式3. CSS 语法4. CSS 选择器4.1 元素选择器4.2 类选择器4.3 ID选择器4.4 属性选择器4.5 后代选择器4.6 子元素选择器4.7 伪类选择器4.8 分组选择器 5. 颜色和字体6. 显示方式display7. 盒子模型7.1 盒子模型 - 外边距塌陷7.2 盒…

Java之SpringCloud Alibaba【八】【Spring Cloud微服务Gateway整合sentinel限流】

一、Gateway整合sentinel限流 网关作为内部系统外的一层屏障,对内起到-定的保护作用&#xff0c;限流便是其中之- - .网关层的限流可以简单地针对不同路由进行限流,也可针对业务的接口进行限流,或者根据接口的特征分组限流。 1、添加依赖 <dependency><groupId>c…

串口中断(9)即时解析用户自定义通讯协议--接收数据固定情况

本文为博主 日月同辉&#xff0c;与我共生&#xff0c;csdn原创首发。希望看完后能对你有所帮助&#xff0c;不足之处请指正&#xff01;一起交流学习&#xff0c;共同进步&#xff01; > 发布人&#xff1a;日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

共享WiFi贴项目可以带来哪些优势?

当谈到共享WiFi贴的推广时&#xff0c;我们不禁要问&#xff1a;这项新兴的服务项目究竟给我们带来了哪些便利&#xff1f;在这篇文章中&#xff0c;我们将探讨共享WiFi贴推广所带来的益处以及其未来潜力。 共享WiFi贴的推广为人们提供了更加快捷的网络接入方式。无论是商场、餐…

远程运维用什么软件?可以保障更安全?

远程运维顾名思义就是通过远程的方式IT设备等运行、维护。远程运维适用场景包含因疫情居家办公&#xff0c;包含放假期间出现运维故障远程解决&#xff0c;包含项目太远需要远程操作等等。但远程运维过程存在一定风险&#xff0c;安全性无法保障&#xff0c;所以一定要选择靠谱…

项目构建工具maven的基本配置+idea 中配置 maven

&#x1f451; 博主简介&#xff1a;知名开发工程师 &#x1f463; 出没地点&#xff1a;北京 &#x1f48a; 2023年目标&#xff1a;成为一个大佬 ——————————————————————————————————————————— 版权声明&#xff1a;本文为原创文…

hp惠普星15青春版笔记本15s-dr2000/15s-du2000原厂Windows11家庭中文版OEM预装系统

适用型号&#xff1a; 15s-dr2002tx&#xff0c;15s-dr2003tx&#xff0c;15s-dr2004tx&#xff0c;15s-dr2005tx&#xff0c;15s-dr2006tx&#xff0c;15s-dr2016TU&#xff0c;15s-dr2017TU&#xff0c;15s-dr2020TU 15s-du2003tx&#xff0c;15s-du2004tx&#xff0c;15s-…

微信小程序(非个人)备案指南

一、小程序备案法律法规参考 1、《中华人民共和国反电信网络诈骗法》 第二十三条 设立移动互联网应用程序应当按照国家有关规定向电信主管部门办理许可或者备案手续。 2、《互联网信息服务管理办法》 第四条 国家对经营性互联网信息服务实行许可制度&#xff1b;对非经营性互…

多维时序 | MATLAB实现TCN-selfAttention自注意力机制结合时间卷积神经网络多变量时间序列预测

多维时序 | MATLAB实现TCN-selfAttention自注意力机制结合时间卷积神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现TCN-selfAttention自注意力机制结合时间卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现TCN-s…

python自动化测试(2)-自动化基本技术原理

1 概述 在之前的文章里面提到过&#xff1a;做自动化的首要本领就是要会 透过现象看本质 &#xff0c;落实到实际的IT工作中就是 透过界面看数据。 掌握上面的这样的本领可不是容易的事情&#xff0c;必须要有扎实的计算机理论基础&#xff0c;才能看到深层次的本质东西。 …