关于命令行下的 git( git add、git commit、git push)

文章目录

  • 关于 git
    • git 的概念
    • git 操作(git add、git commit、git push 三板斧)
      • 安装 git
      • 新建仓库及配置
      • git clone
      • .gitignore
      • git add
      • git commit
      • git push
      • 其他 git 指令
      • git pull(把远端的东西拉到本地进行同步)
      • 其他指令

关于 git

git 的概念

Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,主要用于管理软件开发中的代码变更。它允许多个开发者协同工作,记录每次代码修改,并支持回滚到任意历史版本。

仓库(Repository): 存储项目文件及其历史记录的地方,分为本地仓库(开发者本地机器上)和远程仓库(GitHub、GitLab、Gitee等)。
工作区(Working Directory): 用户当前操作的文件目录。
暂存区(Staging Area): 临时保存即将提交的更改。
提交(Commit): 将暂存区的更改永久保存到仓库,每次提交生成一个唯一的 SHA-1 哈希值。
分支(Branch): 从主线分离的独立开发线,默认分支为 master 或 main。
合并(Merge): 将一个分支的更改整合到另一个分支。
克隆(Clone): 从远程仓库复制整个项目到本地。
拉取(Pull): 从远程仓库获取最新更改并合并到本地分支。
推送(Push): 将本地更改上传到远程仓库。

git 操作(git add、git commit、git push 三板斧)

安装 git

在我们在 Linux 下进行 git 的命令行操作时,得先安装一下 git 。
指令:sudo yum install -y git
当你首次使用新安装的 git 的时候,git 会提示你进行配置用户名和邮箱。按照提示配置即可。
在这里插入图片描述

新建仓库及配置

我们可以在 gitee 上新建一个仓库(在我们注册登录 gitee 账号之后右上角的 ‘+“ 符号新建仓库)
仓库名字我们要根据自己的需求命名规范,方便自己或者他人的查看。
接下来再设置初始化仓库设置模板选择分支模型等,如下:
在这里插入图片描述
初始化仓库:
1)选择语言,选择自己所使用的语言即可,比如小编选择的 C++
2)添加 .gitignore,也选择自己所使用的语言即可,这个东西是干什么的我们下面详细说。
3)开源许可证我们随便选一个都可以。
设置模板:
1)建议选择 Readme 文件;Readme 相当于你的代码的说明文档。
分支模型:
1)这些分支模型都是和开发有关的,目前我们使用默认就可以。以后我们做开发的时候可能就会使用多分支。

做了以上设置之后,我们点击创建即可,创建之后,此时在我们对应的远端就形成了一个仓库。接下来我们就可以在我们的 Linux 下做代码提交了。怎么做呢?

git clone

我们形成仓库之后,我们想要在 Linux 下做代码提交,首先我们要先找到仓库的链接,如下图:
在这里插入图片描述
找到仓库链接之后,复制该链接:
在这里插入图片描述
小贴士:实际上我们提交代码的时候有很多种不同的提交方式:HTTPS、SSH、SVN等等,但是新手我们建议使用 HTTPS 的,而 SSH 等熟悉之后再用(因为比较麻烦,需要在本地形成对应私钥、公钥,然后在你的配置当中仓库里添加密钥信息的等等)

做完以上工作之后,我们就可以在 Linux 下把我们的远端的仓库拉取下来
指令:git clone 仓库链接
此时可能要用户输入你的 gitee 账号的密码。
做完以上工作以后,在当前目录就会形成我们的仓库了:
在这里插入图片描述
此时进入这个仓库目录,ls/ll 就能看到我们在 gitee 上看到的文件。

.gitignore

当我们 ls -al 仓库目录时,我们就能看见 .gitignore 这个文件:
在这里插入图片描述
这个文件是干什么的呢?我们 vim 进入这个文件,我们可以看到很多文件的后缀:
在这里插入图片描述
首先我们要知道,git 上传文件的只需要传源代码( .h/.c/.cpp )就可以了,其他临时文件不需要传上去,而 .gitignore 文件就可以保证,凡是在这个文件中存在的文件后缀所对应的文件,正常 git 操作的时候,不会被上传到远端的仓库下。
小贴士:如果我们不想让带有某些后缀的文件上传到我们的远端仓库上,我们也可以在 .gitignore 文件中添加上这种后缀。

另外,当我们 ls -al 仓库目录时,除了 .gitignore 之外,还有一个 .git ,这个就是我们的本地仓库。所谓的 git 仓库,本质上就是一个目录,名字叫 .git ;再加上里面的内容。而我们后面学的 push 到远端仓库,本质上就是将你的 .git 里面的内容同步到远端仓库上。而远端仓库上实际上也有一个和 .git 一模一样的文件夹,只不过是我们看不到而已。

git add

当我们把代码文件放到仓库中, git add 文件名, 就可以将需要用 git 管理的文件告知 git 。我们来测试一下,下面我们在仓库中创建一个 process 目录,里面放置我们的代码文件 test.c
在这里插入图片描述
下面执行命令:git add . 这个命令的意思是将我们新增的文件,把它添加到本地仓库。(将新增的文件进行二进制转码 添加到 .git 中)

git commit

指令:git commit -m ‘日志信息’
git commit 是提交,-m 后面必须写上我们的提交日志,这个日志不能没有,没有的话就会报错。另外,日志不能乱写,因为日志记录自己做了什么事情,什么修改,方便团队协作别人和自己的查看。而这个提交并不是提交到远端,而是把新增的文件提交到本地仓库,add 只是添加到仓库(添加到临时区域),commit 就是合并到本地仓库,也就是本地有这个代码了,而远端没有。
在这里插入图片描述

git push

git commit 之后,我们的本地仓库已经有我们的代码文件了,而此时我们想要同步到远端时,就可以用 git push 了。
git push :把本地内容提交到远端。
在这里插入图片描述
git push 完成之后,此时我们刷新一下我们的 gitee 仓库,此时我们就能看到我们刚刚新建的目录 process 以及里面的代码文件了。而 commit 提交的日志信息也显示在上面了。
如果途中出现下面的情况:
在这里插入图片描述
我们按照提示输入操作即可:
在这里插入图片描述
当然,git push 的时候,如果你不想频繁输入账号密码,也能配置免密码上传:
配置免密码

其他 git 指令

1)git log 查看提交日志信息。
在这里插入图片描述
2)git status 查看当前的状态(记录一些变化,比如新增文件,修改了文件等等)。
在这里插入图片描述
在这里插入图片描述

git pull(把远端的东西拉到本地进行同步)

我们上传到远端仓库的代码是可以在远端编辑修改的,假如我们在远端修改了自己从 Linux 上传到远端的代码并提交了,此时我们假如不知道远端做了修改,我在linux 下新建了一个文件,然后再进行 git 三板斧(add,commit,push)提交到远端,也就是说我在远端把代码改了,在本地仓库我也做了修改,这时候我们提交到远端的时候,系统就会告诉我们冲突了。此时我们就可以用 git pull了。

git pull 把远端的代码先拉取到本地进行同步,同步的时候会进行合并,我们默认就可以,这时候再进行 git push,这时候就能识别提交到远端,不会冲突了。这时候我们在远端刷新仓库,也就能看到新增的文件了。并且在本地也能看到在远端做了修改的代码。

这个场景就像在工作中我们有几个人共用一个仓库,你的小组成员在远端对代码做了修改,你在本地也做了修改,而这时你上传代码的时候发现冲突了上传不了,这时候就可以用 git pull。这个冲突的本质也是强制我们每一个人必须随时随地地和远端仓库保持一致,不一致就 pull 一下同步。

其他指令

如果我们想对仓库里面的文件重命名,用 git mv
如果我们想删除仓库里面的文件,用 git rm,再 git commit git push 提交即可。

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

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

相关文章

一文讲解Redis中的数据一致性问题

一文讲解Redis中的数据一致性问题 在技术派实战项目中,我们采用的是先写 MySQL,再删除 Redis 的方式来保证缓存和数据库的数据一致性。 我举例说明一下。 对于第一次查询,请求 B 查询到的缓存数据是 10,但 MySQL 被请求 A 更新为…

论文笔记(七十二)Reward Centering(五)

Reward Centering(五) 文章概括摘要附录B 理论细节C 实验细节D 相关方法的联系 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arX…

使用 Python 进行批量解压 .rar 文件

在进行解压 .rar 文件之前,需要进行下载外部工具包,参考以下地址: WinRAR archiver, a powerful tool to process RAR and ZIP filesWinRAR is a Windows data compression tool that focuses on the RAR and ZIP data compression formats …

夜莺监控 - 边缘告警引擎架构详解

前言 夜莺类似 Grafana 可以接入多个数据源,查询数据源的数据做告警和展示。但是有些数据源所在的机房和中心机房之间网络链路不好,如果由 n9e 进程去周期性查询数据并判定告警,那在网络链路抖动或拥塞的时候,告警就不稳定了。所…

Apache DolphinScheduler系列1-单节点部署及测试报告

文章目录 整体说明一、部署环境二、版本号三、部署方案四、部署步骤4.1、上传部署包4.2、创建外部数据库4.3、修改元数据库配置4.4、上传MySQLl驱动程序4.5、初始化外部数据库4.6、启停服务4.7、访问页面五、常见问题及解决方式5.1、时间不一致5.2、异常终止5.3、大量日志5.4、…

CNN 卷积神经网络

前置基础知识 convolution operator 卷积运算 输入矩阵循环取子矩阵跟filter(kernal)按位乘后加和作为输出矩阵对应位置的值。 convolution与cross correlation 上面操作实际是cross correlation操作,两者之间的唯一区别是卷积操作需要在开始计算之前将卷积核进行…

docker部署go简单web项目(无mysql等附加功能)

首先准备好go语言代码 代码表示当访问主机上8080端口下的/hello路径时,会返回hello,world。 package mainimport ("fmt""github.com/gin-gonic/gin" )type hh struct {S string }func main() {router : gin.Default()router.GET(&…

C语言:字符函数和字符串函数

1.字符函数 在 C 语言中&#xff0c;字符分类函数主要定义在<ctype.h>头文件中&#xff0c;这些函数可以用来判断一个字符是否属于特定的字符类别&#xff0c;下面为你详细介绍一些常用的字符分类函数&#xff1a; 1.1 iscntrl 功能&#xff1a;判断一个字符是否为控制…

全域旅游景区导览系统:赋能智慧旅游生态,破解行业核心难题

全域旅游景区导览系统&#xff1a;赋能智慧旅游生态&#xff0c;破解行业核心难题 ——整合旅游商城、非遗文化与全域服务的一站式解决方案 一、行业痛点&#xff1a;传统旅游服务模式的局限性 随着旅游业从单一景区游览向“全域旅游”转型&#xff0c;传统服务模式暴露出诸多…

SQL笔记#集合运算

目录 一、表的加减法 1、什么是集合运算 2、表的加法——UNION 3、集合运算的注意事项 4、包含重复行的集合运算——ALL运算 5、选取表中公共部分——INTERSECT 6、记录的减法——EXCEPT 二、联结(以列为单位对表进行联结) 1、什么是联结(JOIN) 2、内联结——INSER…

基于C++“简单且有效”的“数据库连接池”

前言 数据库连接池在开发中应该是很常用的一个组件&#xff0c;他可以很好的节省连接数据库的时间开销&#xff1b;本文基使用C实现了一个简单的数据库连接池&#xff0c;代码量只有400行只有&#xff0c;但是压力测试效果很好&#xff1b;欢迎收藏 关注&#xff0c;本人将会…

如何通过提示词更好地利用AI

如何通过提示词工程释放AI的全部潜力&#xff1a;7个深度优化技巧 前言&#xff1a;为什么提示词决定AI的输出质量&#xff1f; 在人工智能对话系统的使用中&#xff0c;提示词&#xff08;Prompt&#xff09;就像开启宝藏的密码钥匙。研究表明&#xff0c;优化后的提示词可使…

【C语言】指针笔试题

前言&#xff1a;上期我们介绍了sizeof与strlen的辨析以及sizeof&#xff0c;strlen相关的一些笔试题&#xff0c;这期我们主要来讲指针运算相关的一些笔试题&#xff0c;以此来巩固我们之前所学的指针运算&#xff01; 文章目录 一&#xff0c;指针笔试题1&#xff0c;题目一…

电子科技大学考研复习经验分享

电子科技大学考研复习经验分享 本人情况&#xff1a;本科就读于电科软院&#xff0c;24年2月开始了解考研&#xff0c;24年3月开始数学&#xff0c;9月决定考本院&#xff08;开始全天候图书馆学习&#xff09;并开始专业课学习&#xff0c;11月底开始政治学习&#xff0c;最后…

c#笔记-基础知识

目录 整数 浮点 decimal bool 引用 object string 值 枚举 关键字 enum 类型转换 隐式转换 ​编辑 显式转换 装箱&#xff0c;拆箱 常量 表达式 ​编辑 字符串的使用 比较字符串 字符格式化 ​编辑 截取字符串 字符串的分割 插入字符串 删除字符串 …

表单制作代码,登录动画背景前端模板

炫酷动效登录页 引言 在网页设计中,按钮是用户交互的重要元素之一。一个炫酷的按钮特效不仅能提升用户体验,还能为网页增添独特的视觉吸引力。今天,我们将通过CSS来实现一个“表单制作代码,登录动画背景前端模板”。该素材呈现了数据符号排版显示出人形的动画效果,新颖有…

基于Hadoop的汽车大数据分析系统设计与实现【爬虫、数据预处理、MapReduce、echarts、Flask】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍爬虫数据概览HIve表设计Cars Database Tables 1. cars_data2. annual_sales_volume3. brand_sales_volume4. city_sales_volume5. sales_volume_by_year_and_brand6. sales_distri…

C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化

欢迎来到zhooyu的C++和OpenGL游戏专栏,专栏连载的所有精彩内容目录详见下边链接: 🔥C++和OpenGL实现3D游戏编程【总览】 1、本节实现的内容 上一节课,我们在Blend软件中导出经纬球模型时,遇到了经纬球法线导致我们在游戏中模型光照显示问题,我们在Blender软件中可以通过…

SOME/IP-SD -- 协议英文原文讲解2

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.2.2 S…

C++复习专题——泛型编程(模版),包括模版的全特化和偏特化

1.泛型编程 在未接触模版前&#xff0c;如果我们想实现一个通用的交换函数&#xff0c;那么我们可以通过函数重载来实现 void Swap(int &x,int &y) {int z x;x y;y z; } void Swap(float &x,float &y) {int z x;x y;y z; } void Swap(double &x,dou…