C++ - git 命令行

为什么要有 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.rhkb.cn/news/157901.html

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

相关文章

MyBatis基础之自动映射、映射类型、文件注解双配置

文章目录 自动映射原理jdbcType同时启用配置文件和注解两种配置方式 自动映射原理 在 MyBatis 的配置文件(settings 元素部分)中,有一个 autoMappingBehavior 配置,其默认值为 PARTIAL ,表示 MyBatis 会自动映射&…

Spring实战 | Spring AOP核心秘笈之葵花宝典

Spring实战系列文章: Spring实战 | Spring IOC不能说的秘密? 国庆中秋特辑系列文章: 国庆中秋特辑(八)Spring Boot项目如何使用JPA 国庆中秋特辑(七)Java软件工程师常见20道编程面试题 国庆…

SpringBoot日志文件

目录 日志级别 设置日志级别 日志持久化 获取日志的两种方式 1.LoggerFactory.getLogger(类名.class) 2. lombok的slf4j注解和log对象 日志级别 由低到高依次是:trace->debug->info->warn->error->fatal 其中当程序里设置了日志级别后,程…

实验3:左右循环LED灯

获取流水灯工程: 方式一: keilproteus 完成最小系统,点亮led 灯实验_吴小凹的博客-CSDN博客 方式二: Flowing_led.zip - 蓝奏云直接下载。 原理图修改: 无须修改只需要使用流水灯的工程即可,解压到桌面…

记一次Hbase2.1.x历史数据数据迁移方案

查看待迁移的表 list_namespace_tables vaas_dwm2. 制作待迁移表“DWM_TRIP_PART”的快照 snapshot vaas_dwm:DWM_TRIP_PART,dwm_trip_part_snapshot3. 统计待迁移表数据总数 hbase org.apache.hadoop.hbase.mapreduce.RowCounter vaas_dwm:DWM_TRIP_PART

人脸活体检测技术的应用,有效避免人脸识别容易被攻击的缺陷

随着软件算法和物理终端的进步,人脸识别现在越来越被广泛运用到生活的方方面面,已经成为了重要的身份验证手段,但同时也存在着自身的缺陷,目前常规人脸识别技术可以精准识别目标人像特征,并迅速返回比对结果&#xff0…

ADAS可视化系统,让自动驾驶更简单 -- 入门篇

随着车载芯片的升级、技术的更新迭代,可视化ADAS逐渐变成汽车的标配走入大家的生活中,为大家的驾车出行带来切实的便捷。那么你了解HMI端ADAS的实现过程吗?作为ADAS可视化系统的入门篇,就跟大家聊一聊目前较常见的低消耗的一种ADA…

LLM应用架构 LLM application architectures

在本课程的最后一部分,您将探讨构建基于LLM的应用程序的一些额外考虑因素。首先,让我们把迄今为止在本课程中所见的一切汇总起来,看看创建LLM驱动应用程序的基本组成部分。您需要几个关键组件来创建端到端的应用程序解决方案,从基…

【学习笔记】minIO分布式文件服务系统

MinIO 一、概述 1.1 minIO是什么? MinIO是专门为海量数据存储、人工智能、大数据分析而设计的对象存储系统。(早前流行的还有FastDFS) 据官方介绍,单个对象最大可存储5T,非常适合存储海量图片、视频、日志文件、备…

HTML-注册页面

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title> </head> <body><from action"#" method"get"><table border"1" align&q…

估算总体标准差的极差均值估计法sigma = R/d2

总体标准差的估算值可以通过将平均极差除以合适的常数因子d2来计算。这个估算方法是用于估算总体标准差的一种常见方法&#xff0c;尤其在质量控制和过程监控中经常使用。 总体标准差的估算值 (平均极差) / d2 其中&#xff1a; "总体标准差的估算值" 表示用极差…

《Python基础教程》专栏总结篇

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

有关范数的学习笔记

向量的【范数】&#xff1a;模长的推广&#xff0c;柯西不等式_哔哩哔哩_bilibili 模长 范数 这里UP主给了说明 点赞 范数理解&#xff08;0范数&#xff0c;1范数&#xff0c;2范数&#xff09;_一阶范数-CSDN博客 出租车/曼哈顿范数 det()行列式 正定矩阵&#xff08;Posit…

【iOS】Mac M1安装iPhone及iPad的app时设置问题

【iOS】Mac M1安装iPhone及iPad的app时设置问题 简介一&#xff0c;设置问题二&#xff0c;适配问题 简介 由于 苹果M1芯片的Mac可用安装iPhone以及iPad应用&#xff0c;因为开发者并没有适配Mac&#xff0c;因此产生了很多奇怪问题&#xff0c;这里总结归纳Mac M1安装iPhone和…

机器学习基础之《回归与聚类算法(2)—欠拟合与过拟合》

一、背景 1、上一篇说正规方程的时候&#xff0c;实际情况中使用很少&#xff0c;主要原因它不能解决过拟合。 2、训练集上表现的好&#xff0c;测试集上表现不好—过拟合 二、欠拟合和过拟合 1、欠拟合 训练集&#xff1a;有3个训练集&#xff0c;告诉机器都是天鹅 机器学…

力扣164最大间距

1.前言 因为昨天写了一个基数排序&#xff0c;今天我来写一道用基数排序实现的题解&#xff0c;希望可以帮助你理解基数排序。 这个题本身不难&#xff0c;就是线性时间和线性额外空间(O(n))的算法&#xff0c;有点难实现 基数排序的时间复杂度是O(d*(nradix))&#xff0c;其中…

如何快速区分GPT-3.5 与GPT-4?

GPT 3.5 和 GPT-4 有什么区别&#xff1f; GPT-3.5 在经过大量数据训练后&#xff0c;成功地发展到可以考虑 1750 亿个参数以响应提示。这使其具备令人印象深刻的语言技能&#xff0c;以非常人性化的方式回应各种查询。然而&#xff0c;GPT-4 在更为庞大的训练数据基础上进行了…

数学术语之源——“齐次(homogeneity)”的含义

1. “homogeneous”的词源 “homogeneous”源自1640年代&#xff0c;来自中古拉丁词“homogeneus”&#xff0c;这个词又源自古希腊词“homogenes”&#xff0c;词义为“of the same kind(关于同一种类的)”&#xff0c;由“homos”(词义“same(相同的)”&#xff0c;参见“ho…

用wpf替代winform 解决PLC数据量过大页面卡顿的问题

winform 由于不是数据驱动, 页面想刷新数据必须刷新控件, wpf则不用. 可以利用wpf 的数据绑定和IOC, 页面中的消息传递, itemscontrol 实现大量数据刷新, 上位机页面不卡顿 跨页面传值, 可以用两种方法: Toolkit.Mvvm中的Message和IOC. 下面是代码: using Microsoft.Extensio…

allure测试报告生成逻辑--解决在Jenkins里打开allure报告页面后空白显示无数据问题(以window环境为例)

前言 相信大家在用Jenkins持续集成+ant自动构建+jmeter接口测试+pytest代码.xml文件转化+allure测试报告为一体的接口自动化测试构建过程中,都会遇到Jenkins里打开allure报告页面后空白显示无数据问题这一现象级问题,今天Darren洋就给大家分享一下如何讲讲allure测试报告生成…