关于命令行下的 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 提交即可。
相关文章:
关于命令行下的 git( git add、git commit、git push)
文章目录 关于 gitgit 的概念git 操作(git add、git commit、git push 三板斧)安装 git新建仓库及配置git clone.gitignoregit addgit commitgit push其他 git 指令git pull(把远端的东西拉到本地进行同步)其他指令 关于 git git…...
DaoCloud 亮相 2025 GDC丨开源赋能 AI 更多可能
2025 年 2 月 21 日至 23 日,上海徐汇西岸,2025 全球开发者先锋大会以 “模塑全球,无限可能” 的主题,围绕云计算、机器人、元宇宙等多元领域,探讨前沿技术创新、应用场景拓展和产业生态赋能,各类专业论坛、…...
极速探索 HarmonyOS NEXT:开启国产操作系统开发的新篇章
极速探索 HarmonyOS NEXT:开启国产操作系统开发的新篇章 一、引言二、HarmonyOS NEXT 是什么?背景核心特性 三、HarmonyOS NEXT 的发展历程从 LiteOS 到 HarmonyOS 的逐步演进HarmonyOS NEXT 5.0 的发布 四、HarmonyOS NEXT 对科技的影响技术突破开发者生…...
火狐浏览器多开指南:独立窗口独立IP教程
无论是跨境电商从业者需要管理多个店铺账号,还是海外社交媒体营销人员要运营多个社交平台账号,亦或是从事多账号广告投放的人员,都面临着一个共同的挑战 —— 如何高效管理多个账号,并确保每个账号的独立性。 在这种情况下&#…...
内容中台是什么?内容管理平台解析
内容中台的核心价值 现代企业数字化转型进程中,内容中台作为中枢系统,通过构建统一化的内容管理平台实现数据资产的高效整合与智能调度。其核心价值体现在打破传统信息孤岛,将分散于CRM、ERP等系统的文档、知识库、产品资料进行标准化归集&a…...
1.2 Kaggle大白话:Eedi竞赛Transformer框架解决方案02-GPT_4o生成训练集缺失数据
目录 0. 本栏目竞赛汇总表1. 本文主旨2. AI工程架构3. 数据预处理模块3.1 配置数据路径和处理参数3.2 配置API参数3.3 配置输出路径 4. AI并行处理模块4.1 定义LLM客户端类4.2 定义数据处理函数4.3 定义JSON保存函数4.4 定义数据分片函数4.5 定义分片处理函数4.5 定义文件名排序…...
iOS指纹归因详解
iOS 指纹归因(Fingerprint Attribution)详解 1. 指纹归因的概念 指纹归因(Fingerprint Attribution)是一种无 ID 归因(ID-less Attribution)技术,主要用于广告跟踪、用户识别或流量分析。它基…...
sql server笔记
创建数据库 use master gocreate database stuuuuu//删除数据库if db_id ($$$) is not nullDrop database [$$$] go//新建表USE [studyTest] GOSET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOCREATE TABLE [dbo].[Table_1]([id] [int] NULL,[name] [varchar](10) NULL ) ON…...
uni小程序wx.switchTab有时候跳转错误tab问题,解决办法
在一个子页面里面使用uni.switchTab或者wx.switchTab跳转到tab菜单的时候,先发送了一个请求,然后执行跳转到tab菜单,但是这个时候,出错了........也是非常的奇怪,不加请求就没问题......但是业务逻辑就是要先执行某个请…...
【第十节】C++设计模式(结构型模式)-Flyweight( 享元)模式
目录 一、问题背景 二、模式选择 三、代码实现 四、总结讨论 一、问题背景 享元模式(Flyweight Pattern)在对象存储优化中的应用 在面向对象系统的设计与实现中,创建对象是最常见的操作之一。然而,如果一个应用程序使用了过多…...
AORO M6北斗短报文终端:将“太空黑科技”转化为安全保障
在卫星导航领域,北斗系统作为我国自主研发的全球卫星导航系统,正以其独特的短报文通信功能引发全球范围内的广泛关注。这一突破性技术不仅使北斗系统在全球四大导航系统中独树一帜,具备了双向通信能力,更通过遨游通讯推出的AORO M…...
深度生成模型(二)——基本概念与数学建模
上一篇笔记中提到了端到端模型底层核心采用了深度生成模型,先简单梳理一下 生成式人工智能(Artificial Intelligence Generated Content,AIGC)经历了从早期基于概率模型和规则系统的方法到现代深度生成模型的跨越式发展 深度神经…...
Mac本地部署Deep Seek R1
Mac本地部署Deep Seek R1 1.安装本地部署大型语言模型的工具 ollama 官网:https://ollama.com/ 2.下载Deepseek R1模型 网址:https://ollama.com/library/deepseek-r1 根据电脑配置,选择模型。 我的电脑:Mac M3 24G内存。 这…...
项目——仿RabbitMQ实现消息队列
1.项目介绍 曾经在学习Linux的过程中,我们学习过阻塞队列 (BlockingQueue) 。 当时我们说阻塞队列最大的用途, 就是用来实现生产者消费者模型。 生产者消费者模型是后端开发的常用编程方式, 它存在诸多好处: 解耦合支持并发支持忙闲不均削峰…...
【react】快速上手基础教程
目录 一、React 简介 1.什么是 React 2.React 核心特性 二、环境搭建 1. 创建 React 项目 2.关键配置 三、核心概念 1. JSX 语法 表达式嵌入 样式处理 2. 组件 (Component) 3. 状态 (State) 与属性 (Props) 4. 事件处理 合成事件(SyntheticEvent) 5. …...
流媒体网络协议全解析:从实时传输到自适应流,如何选择最优方案?
一、历史发展与协议提出者 流媒体协议的发展与互联网技术迭代紧密相关,主要分为三个阶段: 早期专有协议(1990s-2000s) RTSP/RTP 提出者:RealNetworks(RTSP初始推动者),后由IETF标准化(RFC 2326)。背景:1996年推出,用于视频监控和点播系统,基于UDP传输媒体流,支持…...
React + TypeScript 数据血缘分析实战
React TypeScript 数据血缘分析实战 目录 技术选型与架构设计核心概念解析基础场景实现 场景一:visx库基础血缘图实现场景二:React-Lineage-DAG企业级方案场景三:动态数据源与复杂交互 TypeScript类型系统深度优化性能优化与工程化实践开源…...
【nextjs官方demo】Chapter 6连接数据库报错
问题:跟着demo创建完成postgres数据库,并修改了env文件,需要访问/seed去初始化数据的时候: 报错信息如下,看信息就是bcrypt模块有问题: 排除了你的环境问题后,就看下面这句话: 它的…...
Nginx的反向代理(超详细)
正向代理与反向代理概念 1.概念: 反向代理服务器位于用户与目标服务器之间,但对用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务…...
Plantsimulation中机器人怎么通过阻塞角度设置旋转135°
创建一个这样的简单模型。 检查PickAndPlace的角度表。源位于180的角位置,而物料终结位于90的角位置。“返回默认位置”选项未被勾选。源每分钟生成一个零件。启动模拟时,Plant Simulation会选择两个位置之间的最短路径。示例中的机器人无法绕135的角位…...
Docker数据卷容器实战
数据卷容器 数据共享 上面讲述的是主机和容器之间共享数据,那么如何实现容器和容器之间的共享数据呢?那就是创建 创建数据卷容器。 命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载…...
Imagination通过最新的D系列GPU IP将效率提升至新高度
Imagination DXTP GPU IP在加速移动设备和其他电力受限设备上的 图形和计算工作负载时,能够延长电池续航时间。 近日,Imagination Technologies(“Imagination”)宣布推出其最新的GPU IP——Imagination DXTP,该产品…...
第13天:数据序列化实战 - 从内存到磁盘的完美转换
第13天:数据序列化实战 - 从内存到磁盘的完美转换 一、今日学习目标 🧱 掌握二进制序列化的原理与实现📄 学习JSON格式的序列化方法💾 完成学生信息管理系统的通用数据存储方案🔍 理解不同序列化格式的适用场景 二、…...
【Rust中级教程】2.13. 结语(杂谈):我学习Rust的心路历程
2.13.1. 【Rust自学】专栏的缘起 笔者我在去年12月份之前对Rust还一无所知,后来看到JetBrains推出了Rust Rover,想着自己毕竟是买的全产品证书就下载下来玩了一下。原本就是看看,都打算卸载了,后来去网上查才发现Rust这门语言挺牛…...
【备赛】点亮LED
LED部分的原理图 led前面有锁存器,这是为了防止led会受到lcd的干扰(lcd也需要用到这些引脚)。 每次想要对led操作,就需要先打开锁存器,再执行操作,最后关闭锁存器。 这里需要注意的是,引脚配置…...
cpp中的继承
一、继承概念 在cpp中,封装、继承、多态是面向对象的三大特性。这里的继承就是允许已经存在的类(也就是基类)的基础上创建新类(派生类或者子类),从而实现代码的复用。 如上图所示,Person是基类&…...
WPF-3天快速WPF入门并达到企业级水准
嘿,小伙伴们!如果你已经有一定的C#开发基础,但想快速掌握WPF开发,达到企业级水准,那接下来的这个三天快速入门计划绝对适合你!虽然听起来有点挑战,但别担心,只要跟着这个高强度、结构…...
[Java基础] JVM常量池介绍(BeanUtils.copyProperties(source, target)中的属性值引用的是同一个对象吗)
文章目录 1. JVM内存模型2. 常量池中有什么类型?3. 常量池中真正存储的内容是什么4. 判断一个字符串(引用)是否在常量池中5. BeanUtils.copyProperties(source, target)中的属性值引用的是同一个对象吗?6. 获取堆内存使用情况、非堆内存使用情况 1. JVM内…...
NocoBase 本周更新汇总:新增路由管理
汇总一周产品更新日志,最新发布可以前往我们的博客查看。 NocoBase 目前更新包括的版本更新包括三个分支:main ,next和 develop。 main :截止目前最稳定的版本,推荐安装此版本。 next:包含即将发布的新功…...
Spring AOP 切面打印日志完整版
我的项目使用的是 SpringBoot 3。 要在 Spring Boot 3 项目中使用 AOP(面向切面编程)来打印接收和响应的参数,如 URL、参数、头部信息、请求体等,可以按照以下步骤操作: 步骤 1: 添加依赖 确保你的 pom.xml 文件中包…...
