Git 原理与使用

news2024/10/6 18:32:12

1.版本控制器

所谓的版本控制器,就是能让你了解到⼀个⽂件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。
⽬前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的⽂件,对于我们开发⼈员来说,Git 最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!
但是:图⽚、视频这些⼆进制⽂件,虽然也能由版本控制系统管理,但没法跟踪⽂件的变化

2.Git安装(Linux-centos)

1.查看git版本

git–version

2.安装 Git

sudo yum install git -y

3.Git 基本操作

Git是一个版本控制器,用来记录和管理文件的修改以及迭代,它可以记录电脑上所有的文件(二进制文件除外)
只有在Git仓库中的文件才能被Git追踪和管理

1.创建 Git 本地仓库

git init
在这里插入图片描述

当前⽬录下多了⼀个 .git 的隐藏⽂件, .git ⽬录是 Git 来跟踪管理仓库的,千万不要⼿动修改这个⽬录⾥⾯的⽂件,会破坏Git仓库

2.配置 Git

安装 Git 后⾸先要做的事情是设置你的 ⽤⼾名称 和 e-mail 地址

# 加上--global表示全局配置,配置这台机器上的所有git仓库
git config [--global] user.name "Your Name" #改成你的昵称
git config [--global] user.email "email@example.com" #改成邮箱的格式
git config -l #查看git配置
#重置配置(全局配置需要加global)
git config [--global] --unset user.name 

在这里插入图片描述

3.认识⼯作区、暂存区、版本库

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

objects 为 Git 的对象库,⾥⾯包含了创建的各种版本库对象及内容。当执⾏ git add 命令时,暂存区的⽬录树被更新,同时⼯作区修改(或新增)的⽂件内容被写⼊到对象库中的⼀个新的对象中,就位于".git/objects" ⽬录下,让我们来看看这些对象有何⽤处:
维护这些对象的索引就相当于维护修改的文件版本

总结

总结⼀下,在本地的 git 仓库中,有⼏个⽂件或者⽬录很特殊

  • index: 暂存区, git add 后会更新该内容。
  • HEAD: 默认指向 master 分⽀的⼀个指针。
  • refs/heads/master: ⽂件⾥保存当前 master 分⽀的最新 commit id 。
  • objects: 包含了创建的各种版本库对象及内容,可以简单理解为放了 git 维护的所有修改。

4.常用命令

 # 添加一个或多个文件到暂存区
 git add
 # 将暂存区内容添加到本地仓库中,注意 git commit 后⾯的 -m 选项,要跟上描述本次提交的 message,由⽤⼾⾃⼰完成,这部分内容绝对不能省略,并要好好描述,是⽤来记录你的提交细节,是给我们⼈看的
 git commit
 # 查看历史提交记录
 git log
 git log --pretty=oneline #简单的打印一行

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

git介绍先到这里啦,有时间会慢慢更新的!

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

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

相关文章

一文看懂Vision Transformer(VIT)

论文名称: An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale 论文下载链接:https://arxiv.org/abs/2010.11929 前言 Transformer早在2020年就在NLP领域大放异彩,并通过BERT等无监督预训练技术将NLP推上一个新的…

LAN口 及 WLAN口 配置

目录 1. LAN 口配置 1.设置无线路由器的管理地址 2.配置DHCP服务器 3.无线路由器的状态检查 4.内网预留IP地址 2 .WLAN配置 1.WLAN概述 2.WLAN的部署 3.WLAN的配置 4.配置客户端接入 1. LAN 口配置 1.设置无线路由器的管理地址 选择左边菜单栏中的“基本设置”→“LA…

性能调优篇 一、Jvm监控及诊断工具-命令行篇

目录 一、概述1、简单命令行工具 二、jps:查看正在运行的Java程序1、是什么?2、测试3、基本语法 三、jstat:查看jvm统计信息 一、概述 性能诊断是软件工程师 1、简单命令行工具 二、jps:查看正在运行的Java程序 1、是什么&…

【Android】 No matching variant of com.android.tools.build:gradle:[版本号] was found

项目报错 No matching variant of com.android.tools.build:gradle:8.1.1 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute …

屏蔽软件,一个技术出生的小企业老板的灵感

我是技术出生,今年开始也带团队了。虽然 人不多,但是有的时候 人在外面出差,不知道办公室的情况。这个时候为了企业的安全考虑,灵感上就想到了开发出一款能屏蔽软件的工具。杜绝掉一些危害公司的一些事。软件后端采用的是JAVA服务…

期权分仓开户资金是否安全?具体保障措施有哪些?

网上关于期权分仓系统的真假一直都没有定论,两方人的争论也让很多没有接触过期权分仓系统的人摸不着头脑,那么期权分仓靠谱吗?资金在里面安全吗?下文为大家科普期权分仓开户资金是否安全?具体保障措施有哪些? 一、期权…

简单易懂的ChatGPT初学者指南-村通网者看

ChatGPT是什么?为什么大家都在关注它?人工智能技术的发展速度超出了预期,这迫使相关的学术机构和企业更新内部通知,以应对AI对工作及工作成果的影响。 OpenAI的推出的ChatGPT利用人工智能与用户进行对话式交流。它不仅可以进行逻辑…

告别繁琐,创造高效率办公!一起了解轻量级的自定义表单开源

在快节奏的社会中,高效率的协作办公成为很多企业的追求目标。什么样的软件平台可以助力实现这一心愿?低代码技术平台拥有多项典型功能,可以满足不同行业的高效率办公需求。自定义表单开源工具轻量级、灵活又易维护,可应用于通信业…

聚观早报|2023戴尔科技峰会助力创新;小米汽车电池供应商敲定

【聚观365】8月23日消息 2023戴尔科技峰会助力企业创新 小米汽车电池供应商敲定中创新航和宁德时代 iPhone15预计有6种配色 王小川卸任自动驾驶企业禾多科技董事 特斯拉动力总成副总裁宣布离职 2023戴尔科技峰会助力企业创新 近日“新生万物 数实新格局 —— 2023戴尔科技…

【TA 挖坑03】雾效 | 透光材质 | Impostor | 厚度转球谐

仍旧是记录下半年想要做的东西,很有趣,实现“一团雾效” “面片也有立体感” 等等效果的一些技术上的方法。 仅粗浅记录,保证之后自己填坑的时候看得懂就行! 透光 -> 透光材质ShadingModel 《永劫无间》透光材质的渲染&…

大数据分析案例-基于LightGBM算法构建糖尿病确诊预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

全链路压测与普通压测的区别

一、前言 什么是全链路压测?全链路压测和平时做的普通压测有什么区别?全链路压测能为业务解决什么问题?如果你对全链路压测存在这些疑问,不妨通过本文一探究竟。 二、什么是全链路压测? 压测,即压力测试…

Idea配置Remote Host

一、打开RemoteHost窗口 双击shift打开全局搜索 搜索Tools→Deployment→Browse Remote Host或 idea项目顶部Tools→Deployment→Browse Remote Host 二、添加服务 右侧边栏打开RemoteHost,点击三个点,起个名字,选择type为SFTP&#xff…

不收费的图片压缩软件有哪些?这几个真好用

高质量的图片往往都会占用大量的存储空间,还会给传输带来不便,因此我们需要图片压缩软件来解决问题,目前市面上有很多图片压缩软件,有哪些是免费又好用的呢?下面就给大家汇总了几个,一起来了解下。 一、Tin…

Maven安装及IDEA集成Maven

一、简介 Maven是apache旗下的开源项目,是一款用于管理和构建java项目的工具。 基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。 在Maven项目中,有一个核心文件pom.xml。POM项目对象模型定义了项目的基本信息&#xff0c…

张驰咨询:我的六西格玛之旅——从学员到实践者的蜕变

各位领导、各位同事们大家好!我是来自碳纤维事业部的王美玲,很荣幸作为学员代表在这里发言,下面谈谈我学习六西格玛的心得和体会。 一、全面系统,深学深悟 刚开始接触六西格玛时,我对于六西格玛的理解仅仅是理论层面…

xshell远程连接网络及属性设置

xshell 是一个非常强大的安全终端模拟软件,它支持 SSH1, SSH2, 以及 Windows 平台的 TELNET 协议。Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。 xshell最新版本是xshell7,常用 的xshell5、xshell6还可以使用…

k8s deployment创建pod流程图

参考 k8s 创建pod和deployment的流程 - SoulChild随笔记

typora的样式的修改

typora首先是一个浏览器, 当我们在typora的设置里面勾选开启调试模式之后, 我们在typora里面右键就会有“检查元素” 这个选项 首先右键 ----》检查元素 将普通字体变颜色 关于Typora修改样式 破解版的typora样式太单调?想让笔记可读性更高…

SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)

在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbonrestTemplate,另一种是feign。在这一篇文章…