Git原理及使用

1、Git初识

Git是一种版本控制器:

对于同一份文件,做多次改动,Git会记录每一次改动前后的文件。

通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。

注意:

Git其实只能跟踪⽂本⽂件的改动,⽐如TXT⽂件,⽹⻚,所有的程序代码等等。版本控制系统可以告诉你每次的改动,⽐如在第5⾏加了⼀个单词“Linux”,在第8⾏删了⼀个单词“Windows”。

不能跟踪二进制文件的改动内容,最多告诉你二进制文件改动前后的大小。

2、Git安装(sudo yum install -y git)

Linux-Centos:

使用:git --version;查看是否有Git,或者查看Git的版本

安装:sudo yum install -y git;

3、Git的基本操作

3、1创建Git本地仓库(git init)

仓库是进⾏版本控制的⼀个⽂件⽬录。

我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来。

创建本地Git仓库的命令是:git init

要注意的是,该命令要在目录文件下进行

[zy@hcss-ecs-4716 gityum2]$ pwd
/home/zy/gitlab/gityum2
[zy@hcss-ecs-4716 gityum2]$ git init
Initialized empty Git repository in /home/zy/gitlab/gityum2/.git/
[zy@hcss-ecs-4716 gityum2]$ ll -a
total 12
drwxrwxr-x 3 zy zy 4096 Mar 22 12:32 .
drwxrwxr-x 4 zy zy 4096 Mar 22 12:31 ..
drwxrwxr-x 7 zy zy 4096 Mar 22 12:32 .git

此时该目录下就出现了一个.git的隐藏目录文件

注意:.git目录是Git来跟踪管理仓库的,不要手动修改这个目录里面的文件,不然该乱了,Git仓库就被破坏了。

对于.git仓库的细节,可以看看:

zy@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

具体里面的内容是什么先不做了解。

3、2配置Git(git config [--global] user.name/email)

首先要设置你的用户名称email地址

使用 git config [--global] user.name/user.email "名称/地址"

git config [--global] user.name "名称"
git config [--global] user.email "地址"

其中--global是一个可选项,如果带上--global代表这台机器上的所有仓库都会使用这个配置

如果希望在不同仓库中使用不同的name和email,就不要带--global。

[zy@hcss-ecs-4716 gityum2]$ git config --global user.name xxx
[zy@hcss-ecs-4716 gityum2]$ git config --global user.email "212123123@qq.com"

查看是否配置成功:git config -l

[zy@hcss-ecs-4716 gityum2]$ git config -l
user.name=xxx
user.email=213123212@qq.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

这样就显示配置成功了。

删除对应的配置命令:

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

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

对于gloabal,如果配置的时候用了global,删除的时候也要对应使用。

3、3认识工作区、暂存区、版本库

工作区:是在本地电脑上你要写代码或⽂件的⽬录

暂存区:英⽂叫stageindex。⼀般存放在 .git ⽬录下的index⽂件(.git/index)中,我们把暂存区有时也叫作索引(index)

版本库:又叫仓库。工作区上有一个隐藏目录.git,它不算工作区,而是Git的版本库。这个版本库内的所有文件都可以被Git管理起来,每个文件的修改(新增、修改、删除),Git都能跟踪

图中左侧为⼯作区,右侧为版本库。Git的版本库⾥存了很多东西,其中最重要的就是暂存区。

在创建Git版本库时

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

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

相关文章

RabbitMQ之Plugins插件----AMQP对接MQTT

1.启用插件 rabbitmq-plugins enable rabbitmq_mqtt 2.检查是否启动成功,打开rabbitmq后台 3.概念: AMQP是由交换器和queue队列组成的消息队列机制,MQTT是由订阅主题组成的消息机制 1.MQTT创建连接时会向rabbitmq创建一个自己的queue&…

内网横向移动小结

windows Windows-Mimikatz 适用环境: 微软为了防止明文密码泄露发布了补丁 KB2871997,关闭了 Wdigest 功能。当系统为 win10 或 2012R2 以上时,默认在内存缓存中禁止保存明文密码,此时可以通过修改注册表的方式抓取明文&#xff…

总结 | vue3项目初始化(附相应链接)

如何运行 vue 项目:vscode运行vue项目_vscode启动vue项目命令-CSDN博客 vue3项目搭建 目录管理 git管理:vue3项目搭建并git管理_git 新建vue3项目-CSDN博客 目录调整:vue3项目 - 目录调整-CSDN博客 vscode中快速生成vue3模板&#xff1a…

基于ssm高校专业信息管理系统设计与实现论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校专业信息管理混乱,出错率高,信息安全性差…

3.23项目:聊天室

1、 基于UDP的网络聊天室 项目需求: 如果有用户登录,其他用户可以收到这个人的登录信息如果有人发送信息,其他用户可以收到这个人的群聊信息如果有人下线,其他用户可以收到这个人的下线信息服务器可以发送系统信息 服务器 #inc…

一、SpringBoot基础搭建

本教程主要给初学SpringBoot的开发者,通过idea搭建单体服务提供手把手教学例程,主要目的在于理解环境的搭建,以及maven模块之间的整合与调用 源码:jun/learn-springboot 以商城项目为搭建例子,首先计划建1个父模块&…

Wireshark TS | DNS 案例分析之外的思考

前言 承接之前一篇《Packet Challenge 之 DNS 案例分析》,在数据包跟踪文件 dnsing.pcapng 中,关于第 4 题(What is the largest DNS response time seen in this trace file? )的分析过程中曾经碰到一个小问题,主要…

MySQL数据库-MySQL基础-下篇-函数、约束、多表查询、事务

文章目录 函数一、字符串函数练习 二、数值函数三、日期函数四、流程函数总结 约束概述约束演示外键约束概念语法删除/更新行为 总结 多表查询多表关系一对多(多对一)多对多一对一 多表查询概述内连接外连接自连接*联合查询-union, union all子查询标量子…

一文读懂IP地址

IP地址(Internet Protocol Address)是指互联网协议地址,是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址的主要特点是具有唯一性&#xff…

AbstractQueuedSynchronizer 独占式源码阅读

概述 ● 一个int成员变量 state 表示同步状态 ● 通过内置的FIFO队列来完成资源获取线程的排队工作 属性 AbstractQueuedSynchronizer属性 /*** 同步队列的头节点 */private transient volatile Node head;/*** 同步队列尾节点,enq 加入*/private transient …

【XR806开发板试用】使用PWM模块模拟手机呼吸灯提示功能

一般情况下,我们的手机在息屏状态,当收到消息处于未读状态时,会有呼吸灯提醒,这次有幸抽中XR806开发板的试用,经过九牛二虎之力终于将环境搞好了,中间遇到各种问题,在我的另一篇文章中已详细描述…

面试算法-82-不同路径

题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? …

MySQL (1)

目录 一、数据库的基本概念 1.1 数据 (Data) 1.2 表 1.3 数据库 2 数据库管理系统 3 数据库系统 二、数据库发展史 关于第三代数据库 三、关系型数据库 当今主流数据库介绍 关系数据库应用 四、非关系数据库介绍 五、MySQL数据库介绍 MySQL商业…

redis和rabbitmq实现延时队列

redis和rabbitmq实现延时队列 延迟队列使用场景Redis中zset实现延时队列Rabbitmq实现延迟队列 延迟队列使用场景 1. 订单超时处理 延迟队列可以用于处理订单超时问题。当用户下单后,将订单信息放入延迟队列,并设置一定的超时时间。如果在超时时间内用户…

网络编程套接字——实现简单的TCP网络程序

目录 1、TCP socket API详解 socket(): bind(): listen(): accept(): connect(): 2、简易的TCP网络程序 TcpServer.hpp TcpClient.cc Main.cc Log.hpp ThreadPool.hpp Task.hpp Init.hpp Daemon.hpp dict.txt Makefile 1、TCP socket A…

CRM软件推荐2024:五款顶级产品解析,助您找到最佳选项!

一天之计在于晨,一年之计在于春。 2024年,民营经济发展继续壮大,这对于各行各业而言都是一种机遇挑战。企业想要规范化客户管理,实现销售增长,CRM软件仍然是一个不错的选择。在数字化时代,企业数字化转型已…

基于SpringBoot实现WebSocket实时通讯的服务端和客户端

实现功能 服务端注册的客户端的列表;服务端向客户端发送广播消息;服务端向指定客户端发送消息;服务端向多个客户端发送消息;客户端给服务端发送消息; 效果: 环境 jdk:1.8 SpringBoot&#x…

大模型+强化学习_通过强化学习对齐大模型和环境

英文名称: True Knowledge Comes from Practice: Aligning LLMs with Embodied Environments via Reinforcement Learning 中文名称: 实践出真知:通过强化学习将LLMS与具体环境对齐 链接: https://arxiv.org/abs/2401.14151 代码: https://github.com/WeihaoTan/TWO…

BI技巧丨个性化视觉对象

BOSS:那个,那个谁,最近用户反映了,说是你们做的报表不太行啊?! 白茶:(???)老板,怎么说? BOSS:就是…

网络原理(5)——IP协议(网络层)

目录 一、IP协议报头介绍 1、4位版本 2、4位首部长度 3、8位服务器类型 4、16位总长度 5、16位标识位 6、3位标志位 7、13位偏移量 8、8位生存空间 9、8位协议 10、16位首部检验和 11、32位源IP地址 12、32位目的IP地址 二、IP协议如何管理地址? 1、动…