【掌握版本控制:Git 入门与实践指南】配置详解|理解本地仓库结构

news2024/11/19 5:44:04

                                               🎬慕斯主页修仙—别有洞天

                                              ♈️今日夜电波:泥中に咲く—ウォルピスカーター

                                                                0:34━━━━━━️💟──────── 4:46
                                                                    🔄   ◀️   ⏸   ▶️    ☰  

                                      💗关注👍点赞🙌收藏您的每一次鼓励都是对我莫大的支持😍


 

目录

如何知道是否有安装Git?

如果没有Git,如何安装?

sudo命令不能在普通用户使用的情况

创建本地仓库

配置Git

基本操作的使用

添加文件

理解Git的结构

工作区、暂存区和版本库


如何知道是否有安装Git?

如下命令即可知道:

git --version

如果存在即会显示对应的Git版本信息:

如果没有Git,如何安装?

        如下命令即可:

sudo yum install -y git//centos
sudo apt-get install -y git//ubuntu

        若是在root下可不带sudo!

sudo命令不能在普通用户使用的情况

        可以按照以下步骤将对应的用户添加到sudo中:

1、切换到root用户

su 
//输入密码

2、给对应的文件添加上写指令

chmod u+w /etc/sudoers

3、进入对应的文件,并添加上对应用户的权限。

vim /etc/sudoers//打开对应的文件

        如下:按下“i”进入编辑模式,滑到最底下并添加上对应的代码。

        格式如下:

(1)普通使用sudo命令,输入密码 5分钟有效

//给用户添加sudo
要添加的用户名 ALL=(ALL) ALL

(2)如下设置后sudo命令无需密码,直接使用

//给用户添加sudo
要添加的用户名 ALL=(ALL) NOPASSWD:ALL

(3)首先shift+;然后输入wq!回车(保存并退出)

4、把之前改的权限改回即可

chmod u-w /etc/sudoers

创建本地仓库

        使用如下命令在当前目录下创建一个Git本地仓库:

git init

        需要注意的是:Git本地仓库被创建出来后的名字为“.git”,他是一个隐藏文件!可以使用 ls -a 来查看。如下为.git的结构:

配置Git

        如下命令查看git配置:

git config -l

        如下为设置用户名和e-mail地址的操作:

git config [--global] user.name "Your Name" //其中 --global 是⼀个可选项
git config [--global] user.email "email@example.com"

        加上global表示该配置生效在所有仓库,没加则表示当前的仓库!

        如下为删除对应配置的操作,:

git config [--global] --unset user.name //其中 --global 是⼀个可选项
git config [--global] --unset user.email

        需要注意:如果是global选项的配置只有只有global才能删除!

基本操作的使用

添加文件

        如下命令可以将文件或者目录添加到暂存区:

git add [file1] [file2] ... //可以添加一个或多个文件,如上添加file1和file2
git add . //添加当前⽬录下的所有⽂件改动到暂存区

        如下命令可将暂存区内容添加到本地仓库中 :

git commit -m "message" //将暂存区全部内容到本地仓库中
//需要注意:message可以为如何字符,可以理解为一个随笔、记录,必须添加!
git commit [file1] [file2] ... -m "message" //提交暂存区的指定⽂件到仓库区

        通过上述的操作我们就已经将所有的代码直接提交到本地仓库了!使用如下命令可以查看提交记录:

git log 
git log  --pretty=oneline //让记录看起来更美观

        需要注意的是:我们看到的⼀⼤串类似 23807c5...56eed6 的是每次提交的 commit id (版本号),Git的 commit id 不是1,2,3……递增的数字,⽽是⼀个SHA1计算出来的⼀个⾮常⼤的数字,⽤⼗六进制表示。

        我们可以使用如下命令查看版本库对象的内容:

git cat-file -p [commit id]

 

理解Git的结构

工作区、暂存区和版本库

        在创建完成Git的本地仓库后,我们可以按照如下理解Git的结构组成:

        ⼯作区:是在电脑上你要写代码或⽂件的⽬录。

        暂存区:英⽂叫stage或index。⼀般存放在 .git ⽬录下的index⽂件(.git/index)中(需要注意的是:这个index需要在使用过暂存区后才会出现),我们把暂存区有时也叫作索引(index)。即:git add 后会更新内容的区域:

        版本库:⼜名仓库,英⽂名repository 。⼯作区有⼀个隐藏⽬录.git ,它不算⼯作区,⽽是Git的版本库。这个版本库⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

        对象库:存在于版本库中,被版本库维护。修改的工作区内容会被写入对象库一个新的git对象中。表现为。git下的objects(包含了创建的各种版本库对象及内容,可以简单理解为放了git维护的所有修改)。如下图所示:

        需要注意的是:在创建Git版本库时,Git会为我们⾃动创建⼀个唯⼀的master分⽀,以及指向master的⼀个指针叫HEAD暂存区以及master下都是存的索引!指向的是objects中的对象!refs/heads/master:⽂件⾥保存当前master分⽀的最新 commit id 。


                       感谢你耐心的看到这里ღ( ´・ᴗ・` )比心,如有哪里有错误请踢一脚作者o(╥﹏╥)o! 

                                       

                                                                        给个三连再走嘛~  

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

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

相关文章

excel批量数据导入时用poi将数据转化成指定实体工具类

1.实现目标 excel进行批量数据导入时,将批量数据转化成指定的实体集合用于数据操作,实现思路:使用注解将属性与表格中的标题进行同名绑定来赋值。 2.代码实现 2.1 目录截图如下 2.2 代码实现 package poi.constants;/*** description: 用…

力扣--动态规划/回溯算法131.分割回文串

思路分析: 动态规划 (DP): 使用动态规划数组 dp,其中 dp[i][j] 表示从字符串 s[i] 到 s[j] 是否为回文子串。预处理动态规划数组: 从字符串末尾开始,遍历每个字符组合,判断是否为回文子串,填充…

像SpringBoot一样使用Flask - 2.静态资源访问及模版

一、安装并导入 render_template 功能:渲染/加载模板,一般是html页面 参数:函数的第一个参数是模板的文件名,必填,后面的参数都是键值对,表示模板中变量对应的值,非必填 (不填界面也不会展示成变…

使用express+nginx+pm2+postman实现推送zip包自动更新前端网页

1.nginx配置将80端口代理到项目的3000端口 server {listen 80; #监听的端口server_name localhost; #监听的域名#charset koi8-r;#access_log logs/host.access.log main;location / {#root html;#index index.html index.html;proxy_pass http://127.0.0.1:3000; #转…

Android App冷启动耗时优化

Android应用启动过程 Android应用启动过程,主要包含app::onCreate及执行前的Application阶段及Activity::onCreate执行之后的Activity阶段,以及两个阶段之间的间隙handleMessage阶段和最终页面渲染上屏完成前数据加载阶段四个区间组成。 具体来看&#x…

如何提高内存和cpu使用率呢?-Linux类资源

最近公司项目上线时,红蓝线巡检时,部分服务器因配置高但使用率低而需要降级。 为了避免降级,如何增加内存和CPU使用率? 这可以通过脚本来实现。 当前服务器操作系统版本:-7_5。 连接服务器后,登录账号。 …

深入理解Debug断点调试技巧

在软件开发过程中,调试是一个非常重要的环节,而使用断点是提高调试效率的关键技巧之一。本文将深入探讨如何利用断点进行高效的调试,常用的快捷键以及一些常见的断点调试技巧。 一、调试技巧: 1. 设置断点:在代码中设…

你配赚米吗?韭菜就在繁荣时进场!防诈P的最简单方法,还不告诉你爸妈?——早读(逆天打工人爬取热门微信文章解读)

你听到哪里好,你去了就是韭菜 引言Python 代码第一篇 人民日报 1460万,保住了!第二篇 人民日报 夜读 每一次努力,都是幸运的伏笔第三篇 人民日报 来啦 新闻早班车要闻社会政策 结尾 “故天将降大任于是人也,必先苦其心…

CMake 交叉编译

想知道“魔笛手”在这里能发挥什么作用吗?想象一下,把 CMake 当做法力高强的魔笛手,C 的项目则是故事中的那些被魔笛手拯救的孩子。 父母要抚养一个孩子并非易事,营养需要面面俱到,保证身体健康,关心事无巨…

【活动】探索人工智能的“迷惑瞬间”:真实体验与技术挑战

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 标题:探索人工智能的“迷惑瞬间”:真实体验与技术挑战引言…

vulhub中Weblogic 管理控制台未授权远程命令执行漏洞复现(CVE-2020-14882,CVE-2020-14883)

Weblogic是Oracle公司推出的J2EE应用服务器。在2020年10月的更新中,Oracle官方修复了两个长亭科技安全研究员voidfyoo 提交的安全漏洞,分别是CVE-2020-14882和CVE-2020-14883。 CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台&#x…

英飞凌电源管理PMIC的安全应用

摘要 本篇文档主要用来介绍英飞凌电源管理芯片TLF35584的使用,基于电动助力转向应用来介绍。包含一些安全机制的执行。 TLF35584介绍 TLF35584是英飞凌推出的针对车辆安全应用的电源管理芯片,符合ASIL D安全等级要求,具有高效多电源输出通道&…

[综述笔记]Graph Neural Networks in Network Neuroscience

论文网址:Graph Neural Networks in Network Neuroscience | IEEE Journals & Magazine | IEEE Xplore 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正&#xf…

阿里云服务器2核4G配置2024年活动价格及收费标准价格表

阿里云服务器2核4G配置2024年需要多少钱?2核4G配置的阿里云服务器选择不同实例规格和地域,其收费标准和活动价格都是不一样的,2024年3月1日,阿里云率先宣布云产品大规模调价,其中云服务器最高降幅达36%,因此…

计算机网络:网络层知识点汇总

文章目录 一、网络功能概述二、SDN基本概念三、路由算法与路由协议概述四、IP数据报格式五、IP数据报分片六、IPv4地址七、网络地址转换NAT八、子网划分和子网掩码九、无分类编址CIDR十、ARP协议十一、DHCP协议十二、ICMP协议十三、IPv6十四、RIP协议与距离向量算法十五、OSPF协…

qt-C++笔记之使用Cmake来组织和构建QWidget工程项目

qt-C笔记之使用Cmake来组织和构建QWidget工程项目 —— 杭州 2024-03-10 code review! 文章目录 qt-C笔记之使用Cmake来组织和构建QWidget工程项目1.运行2.文件结构3.CMakeLists.txt4.main.cpp5.widget.h6.widget.cpp7.widget.ui 1.运行 2.文件结构 3.CMakeLists.txt 代码 c…

Qt 数据库驱动未装载MYSQL

一、第一部分 0.Qt 连接mysql数据库时报错: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 QT连接代码: bool createMysqlConn() {QSqlDatabase sqldb QSqlDatabase::addDatabase(&qu…

【算法面试题】-05

智能成绩表 class Student:def __init__(self):self.name "" # 学生名字self.scores [] # 每门课成绩students [Student() for _ in range(10004)] # 存储学生信息的数组 key_index 0 # 要排序的课程名的下标# 自定义排序函数 def student_comparator(a, b):…

中间件 | Redis - [基本信息]

INDEX 1 常规用法2 QPS3 pipeline 1 常规用法 分布式锁 最常见用法,需要注意分布式锁的redis需要单点 分布式事务 分布式事务中,核心的技术难点其实是分布式事务这个事本身作为数据的持久化 2PC,比如 seata 的 AT 模式下,将 un…

低功耗控制器结合Node-RED革新电力系统监控方式

现代电力行业的不断发展与技术进步,微电网ARM低功耗控制器与Node-RED的深度融合,为电力系统的智能化运维提供了崭新的解决方案。这一集成方案将硬件控制的高效稳定与软件逻辑处理的强大灵活性相结合,实现了对变电站设备、输电线路状态以及智能…