C++ - git 命令行

news2024/10/7 20:34:42

为什么要有 git

你很可能遇到过这种情况,在写项目的时候,要我不符合 leader 的要求,因而修改了很多个版本,但是修改到最后一版的时候,leader 有觉得当前这版还没有之前 某一版好,现在又要求你在 之前的那一版上进行一些修改然后就提交;但是 , 对于leader需要的那一版的具体细节你也记得不是很清楚,也不好直接修改回去。

所以,你就在电脑当中创建了一个文件夹,里面存放的都是你修改过的代码不同版本的文件,我们把这个文件夹叫做本地仓库。这个本地仓库的使用者,就可对修改的不同版本的代码或者是其他文件 进行 版本隔离管理。

但是,这个项目你修改了这么多版本,怎么可能每一版都存储在在电脑当中,当这个项目很大,我们更不可能存储了。而且,在本地当中存储的 文件,很有可能会丢失,比如电脑损坏等等原因。

这时候,就有了 又有了服务器端,在服务器当中存储,我们把这种仓库称之为 远端仓库

 所以,此时,就可以让用户选择,是否要让 本地仓库当中的 文件 上传到 服务器当中。

而 现在我们所使用的 远端仓库,基本上都是 一些 大型企业 在进行管理的 服务器,一般来说是很难出现问题的,就算出现问题,也就很快进行解决。


而且,关于远端仓库不只有存储本地文件的作用,我们开发的一个大型项目,很多时候都不是我们自己一个人在开发,可能有很多人在一起开发,一个人完成一部分内容,然后,每一个把自己完成的那一部分内容上传到 远端仓库,供别人参考使用,来创建其他人自己要实现的一部分。这就是多人协作


当然,不只有git 一个软件,还有像类似 svn 这样的软件,但是,绝大数的软件是要收费的,但是 git 是开源免费的。

而所谓 git 就是一个 具有网络功能的控制器git 既可以充当 client(服务端),又可以做 server (服务端)。所以,我们既可以把自己代码推送上去,又可以把 别人的代码拉取下来我自己也可以搭建一个远端仓库,让别人拉取我的代码。

专业一点说,git 是一个 去中心化的分布式的版本管理器。

git 的发展

 在早期linux开源之后,linux 是一个操作系统,操作系统的软件规模要大得多,那么就注定了参与这个项目的人非常多,有大量的人提交代码,比如通过邮件等等的方式提交自己实现的软件代码文件,linux 的管理者,要审核这些代码的作用和问题,没问题就会把这些代码合并到 linux 代码当中。随着linux的开源,那么提交的代码量就大大增多,linux 当中暴露的问题也就更多了。

这时就有人想,有没有一款软件,能够实现自动合并 代码,然后实现版本隔离,刚开始肯定不是linux 的人自己写,肯定是先去网上寻找,看有没有现成的。但是,当时市面上的版本控制器是要收费的,那么linux 又是开源的,这就不符合了,开源的操作系统需要用一款闭源的版本控制器。

而且,收费不是谁都愿意缴费来使用这个版本控制器的,用户想从服务器当中拉取一段代码,还要话钱,用户肯定会不满意,毕竟这是开源的操作系统。那么对于开源的社区体量就有了一个限制了,不利于linux 的传播,这肯定不是 linux 开发者想看到的。 

在当时有一个 比较情怀的公司,专门做版本隔离软件的,也是靠这个软件存活的公司,就了解到 linux 有版本隔离软件这个需求,就免费给 linux 提供这个版本隔离的软件。但是,这个版本隔离软件,经过linux 内部人员 和 公司的进行加密的。

但是,毕竟 linux 是开源的,人才济济,有人就对 这个 版本隔离软件 进行 破解查看,此时就被 公司当中的人发现了,公司人就认为,免费给linux 用的软件,现在又被破解,心里就不舒服,就把 这个软件给回收 了。

至此,linux又一夜回到解放前。

所以,Linus Torvalds 就自己写了一个版本隔离软件,叫做 git。

但是 git 有只是一个软件,对于 服务器 还是要自己搭建,所以,就基于 git 搞了商业化的网站 ---    github 和 gitee。

同时,还基于 linux 内核 搞了一些   商业化的 OS 比如 :Centos,ubuntu等等      

安装 git

可以直接使用 yum 应用商店来安装:

yum install git

git 的使用  

把远端仓库拉取到本地 

在 linux 当中使用 git 把 gitee 当中的 远端仓库拉取到 本地,于本地仓库进行连接:

 在 gitee 当中选择你想链接的远端仓库,然后点击  "克隆/下载" ,选择 你想要 链接的协议,这里我们就选择 HTTPS,在公司当中可能更多会使用自己搭建的 比如 SVN 服务器。

复制上述链接。

打开你的linux 操作系统。

在链接之前,请确保你的 linux 操作系统当中已经安装了 git :

或者使用 git --version    git --help   查看:

如果是和上述类似的,说明此时已经安装好了。 

 此时我们在 用户目录当中新创建一个 test_git_code 目录,用于上传文件到  gitee。

然后使用如下命令来搭建 远端仓库和 本地仓库连接:

git clone 远端仓库链接

 在输入上述指令之后,就会让你输入用户名和用户密码,输入之后就配置成功了。

此时查看本目录下,就会发现一个新建的和 远端仓库同名的 本地文件夹。

在git 首次使用的时候,可能会让你设置一些 个人信息: 

只需要按照它的提示,输入 一下命令,  设置一下就行:
 

git config --global user.email ""   和 git config --global user.name ""

 设置这个个人信息,主要是:当自己上传的项目出现问题之后,被使用的用户发现了,后者是用户对于你的项目的使用等等的方面有各种各样的问题,需要用过这个练习方式来找到你。

 或者是在公司当中,写的项目,被 leader 发现了问题,那么leader 也可以通过这个方式来找到你。

使用git 三板斧 从本地 提交文件到远端仓库

我们 cd 到这个目录的当中去,使用 -al 查看当前目录下的全部文件,就会发现一个 .git 目录,这个目录就我们可以进行传输的目录了

 这还是一个 隐藏目录,这里面有你写入文件等等一些日志,之所以设置成隐藏文件,就是不想让你看到,不想让你做修改,所以我们千万不要对.git 目录当中的内容进行修改

 假设现在我们想把 text_git_code 这个文件上述传到 gitee 当中的话,就只需要直接把 这个文件 cp (移动)到 本地的于gitee仓库同名的文件当中,注意不是 .git 当中。

 然后使用  git add .   这个命名,表示把仓库当中 没有添加到 远端仓库的文件添加到,先暂时添加到 仓库的缓存区当中。

然后使用 git commit -m ""  命令。注意:其中 "-m" 是必须写的,"" 当中的内容就是提交这个文件的日志,这个日志也是要写的,而且不能胡写,要写这个文件当中做了什么。

上述两步其实都还是在本地目录当中,要上传到远端仓库当中还需要最后一步是:git push  把仓库缓存区当中文件推送到 远端仓库当中,这一步需要输入 用户名和密码

 注意:如果在使用 git add .  之后,又对要上传的文件进行了修改的话,一定要再次使用  git add .   命令,以为 add 命令不是上传 文件本身全部代码,而是上述你 增删查改文件的那一部分代码。

 自己的提交记录,别人是可以查看的,使用 git log 命令就可以查看历史提交记录
 

 查看别人的仓库 提交日志也是一样的,和上述一样,找到 仓库链接,然后使用这个链接 把仓库文件夹 clone 到本地,然后,cd 到这个仓库当中去使用 git log  就可以查看这个仓库当中的提交日志。 


 git status 命令

我们还可以使用  git status  命令来查看当前的本地作业环境下,有没有没有提交的文件,也就是在 从远端拉取到本地的目录当中,有没有 没有提交的文件,或者是修改文件的之后没有提交的文件。

如果没有就会提示:
 

 有就会提示,当前有几个文件没有提交进去,对应文件名也会显示。

 如你愿意尝试的话,上述提到的三板斧,你的文件提交 三板斧 的 哪一步了,他都是会有提示的,而且会提示你当前这个文件应该怎样操作。

 指定某后缀 文件不添加到 仓库当中

 如果你已经拉取 远端仓库 到本地,那么cd 打开在本地拉取的 文件夹,你会发现一个 .gitignore 

的隐藏文件:
 

 这个文件当中就包含了 你不想要添加的 文件名后缀,和一些日志信息,调试信息,调试文件等等,后面的都不用管,我们可以直接 使用 vim 编辑这个文件,在这个文件当中 手动写上不想要 上传的文件名后缀:
 

注意:上述 后缀名之前的 "*" 不能遗漏。 

此时,我们 在本地拉取的 库文件当中创建 这两个后缀的 文件,然后使用 git status 命令,发现给出提示,这些文件是不能上传的,已经被识别出来了:
 

git提交 免密 提交代码

git本地免密码和账号pull、push_没有git账号怎么拉代码-CSDN博客

 git 当中交提交代码本来是要输入密码的,但是可以进行免密操作,具体请看上述博客。

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

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

相关文章

Fbank及MFCC学习

Fbank:FilterBank:人耳对声音频谱的响应是非线性的,Fbank就是一种前端处理算法,以类似于人耳的方式对音频进行处理,可以提高语音识别的性能。获得语音信号的fbank特征的一般步骤是:预加重、分帧、加窗、短时…

【嵌入式开发学习01】Arduino安装esp32-cam以及CameraWebServer实例的实现

目录 1. 硬件2. 软件2.1 arduino下载安装2.2 arduino配置esp32-cam开发板文件2.3 下载相应版本的esp32 3. ESP32-CAM实例:CameraWebServer3.1 选择开发板3.2 选择示例代码进行验证3.3 烧录进行实测 1. 硬件 没买下载主板的可使用usb转串口模块进行烧录,接…

LeetCode【73】矩阵置零

题目: 思路: 1、从题目看,在遍历数组的同时,如果遍历到0,回溯i,j,将其对应的行列变为0。不能变更后面的,后面遍历整个数组都将变成0. 2、需要额外的空间存储要变0的标记位&#xf…

高通推出骁龙X系列进军PC平台

今日,高通在官方博客发布了由高级副总裁兼首席营销官莫珂东(Don McGuire)署名的一篇文章,正式揭晓了一款全新的芯片系列:骁龙X系列。该款芯片专为下一代PC体验打造。高通表示,2024年将会是PC行业的一个拐点…

OJ项目——统一数据格式返回,我是如何处理的?

目录 前言 OJ项目中是如何处理的 1、准备一个类,作为统一的数据返回格式 2、准备一个类,实现ResponseBodyAdvice接口 3、我们如何写返回值更好 4、进一步优化返回值 小结 前言 关于SpringBoot的同一功能处理,本博主在这篇博客已经有介…

Linux 系统中提供CPU性能分析工具整理

Linux 系统中提供CPU性能分析工具整理 汇总 查看CPU信息 在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下: cat /proc/cpuinfo显示如下: rootthe…

docker创建elasticsearch、elasticsearch-head部署及简单操作

elasticsearch部署 1 拉取elasticsearch镜像 docker pull elasticsearch:7.7.0 2 创建文件映射路径 mkdir /mydata/elasticsearch/data mkdir /mydata/elasticsearch/plugins mkdir /mydata/elasticsearch/config 3 文件夹授权 chmod 777 /mydata/elastic…

详解cv2.addWeighted函数【使用 OpenCV 添加(混合)两个图像-Python版本】

文章目录 简介函数原型代码示例参考资料 简介 有的时候我们需要将两张图片在alpha通道进行混合,比如深度学习数据集增强方式MixUp。OpenCV的addWeighted提供了相关操作,瓷片博客将详细介绍这个函数,并给出代码示例。🚀&#x1f6…

有外媒称,Linux 发行版Ubuntu 23.10也将正式支持树莓派 5

据了解,在树莓派 4 单板计算机推出 4年后,树莓派 5也在上月末正式发布,并且两者对比之后可以发现,树莓派 5主要提升性能是添加了对 PCIe 2.0的支持。 Multiable万达宝医疗ERP(www.multiable.com.cn/solutions_yl)具备严格的保质期…

搭建vue后台管理系统框架

第一步:创建vue项目vue create 项目名称,并安装element-ui Vue CLI v3.1.3 ? Please pick a preset: Manually select features ? Check the features needed for your project: Babel, Router, CSS Pre-processors, Linter 1、是否使用history模式的…

【Express】静态资源

通过 Express 内置的 express.static 可以方便地托管静态文件,例如图片、CSS、JavaScript 文件等。 将静态资源文件所在的目录作为参数传递给 express.static 中间件就可以提供静态资源文件的访问了。 // 配置静态资源 app.use(express.static(public)); app.use(…

条件表达式

1.语法: 如果写范围,case不用写字段名 内容:case 字段名 when 值/或者值的范围 then 转化成的值 as 列名 end 语义:选择转换后新起一列 as不写默认text 2.其他用法: 2.1.计次 count(...)…

Master PDF Editor v5.9.70便携版

软件介绍 Master PDF Editor中文版是一款小巧的多功能PDF编辑器,可以轻松查看,创建,修改,批注,签名,扫描,OCR和打印PDF文档.高级注释工具,可以添加任意便笺指示对象突出显示,添加下划线和删除,而无需更改源PDF文件. 软件截图 更新日志 code-industry.net/what-is-new-in-mas…

【原创】在Linux上安装Zabbix客户端

检查Linux版本 cat /etc/issue得到结果 Ubuntu 18.04.2 LTS \n \l 下载软件 到 Zabbix官网(https://www.zabbix.com/) 依次点击 Download>Zabbix Packages>Choose your platform>ZABBIX VERSION>6.4>OS DISTRIBUTION>Ubuntu>OS …

[科研琐事] 安装服务器到机柜的二三事

1. 机柜参数 宽度:一般机器都是符合的; 深度:对应服务器最长的那个边; 厚度(高度):1/2/3/4U,就是机柜上写的刻度数字,1U1.75英寸。 1U4.45cm 2U4.45cm * 2 3U4.45cm * …

关于LEFT JOIN的一次理解

先看一段例子: SELECTproduct_half_spu.id AS halfSpuId,product_half_spu.half_spu_code,product_half_spu.half_spu_name,COUNT( product_sku.id ) AS skuCount,product_half_spu.create_on,product_half_spu.create_by,product_half_spu.upload_pic_date,produc…

业务安全五重价值:防攻击、保稳定、助增收、促合规、提升满意度

目录 防范各类威胁攻击 保障业务的连续性和稳定性 保障业务的合规性 提升企业营收和发展 提升企业满意度和品牌知名度 2023年暑假被“票贩子”和“黄牛”攻陷。他们利用各种手段抢先预约名额,然后加价出售给游客,导致了门票供不应求的局面&#xff…

CNN-generated images are surprisingly easy to spot... for now

CNN-generated images are surprisingly easy to spot… for now----《目前CNN生成的图像非常容易被发现》 背景: 研究者们发现,仅仅对一种由CNN模型生成的图像进行训练的分类器,也可以检测许多其他模型生成的结果。由此提出这样的观点&#…

thinkphp5.1 获取缓存cache(‘cache_name‘)特别慢,php 7.0 unserialize 特别慢

thinkphp5.1 获取缓存cache(‘cache_name’)特别慢,php 7.0 unserialize 特别慢 场景: 项目中大量使用了缓存,本地运行非常快,二三百毫秒,部署到服务器后 一个表格请求就七八秒,最初猜想是数据库查询慢&am…

Java进阶 之 再论面向对象(2)——类的定义及对象的使用 封装Encapsulation 关键字private,this

前言 在上一篇博客中,我们从面向过程和面向对象的编程思想谈起,阐述了类和对象在Java中的编程中的应用,此外,对于对象的内存,变量作用域,参数传递等进行了阐述。 Java进阶 之 再论面向对象(1&…