Linux系统编程Day8 -- Git 教程(初阶)

  往期内容回顾

        基于Linux系统知识的第一个程序

        自动化构建工具-make/Makefile

        gcc/g++编译及链接

        Vim工具的使用

        Linux常用工具(yum与vim)

       ​​​​​​ Linux系统编程Day4-- Shell与权限

回顾进度条程序的编写:

//.h文件内容
#include<stdio.h>                                        
#include <string.h>                                    
#include <unistd.h>                                     
#define NUM 101                                          
#define types 5                                        
extern void ProcessOn();//.c函数文件内容
#include "process.h"
#include <stdio.h>void ProcessOn(){char labels[types] ="|\\-/"; char str[101] = {[0]='\0'};memset(str,'\0',sizeof(str));for(int i = 0;i<NUM;i++){str[i] = '#';printf("[%-101s][%-3d%%%c]\r",str,i,labels[i%4]);fflush(stdout);usleep(50000);}   printf("\n");
}//mian.c文件内容
#include "process.h"int main(){ProcessOn();return 0;
}

一、Git 初识

        1、什么是 Git?

Git 是一个 分布式版本控制系统,用于管理源代码的变更历史。

🌟 你能用 Git 做什么?

  • 管理代码历史(增删改记录)

  • 回滚错误提交

  • 并行开发(多人协作)

  • 管理分支(开发、测试、上线)

  • 配合 GitHub/GitLab 进行远程托管

🎯 Git 的最大优势:分布式 + 分支管理强大 + 速度快 + 占用资源少        

        2、Git 的基本结构原理

Git 使用 3 个区域管理代码的变化:

区域

说明

工作区(Working Directory)

你当前编辑/操作的目录

暂存区(Stage / Index)

你准备提交的更改

本地仓库(Repository)

已提交的历史记录(git commit)

工作区 --> 暂存区 --> 本地仓库
                ↑
            git add
                      ↑
                  git commit


        3、Git 安装与配置

        1、 安装 Git

Linux/macOS 用户:

sudo apt install git   # Ubuntu/Debian
brew install git       # macOS

Windows 用户:

去 https://git-scm.com 下载并安装即可。

        2、 初始配置

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱
"


        4、Git 的基本操作(本地仓库)

1、 初始化仓库

        git仓库就是一个目录.git + 里面的内容

git init

2、 查看状态

git status

3、 添加文件到暂存区

git add 文件名
git add .       # 添加所有改动文件

4、提交到本地仓库

git commit -m "提交说明"

5、 查看提交历史

git log

6、创建分支与切换

git branch 分支名         # 创建分支
git checkout 分支名       # 切换分支
git checkout -b 分支名    # 创建并切换

7、合并分支

git merge 分支名

5、GitHub:远程仓库平台

        GitHub 是基于 Git 的远程代码托管平台,用于共享项目、协作开发。

        1、 在 GitHub 搭建个人项目(完整流程)

         第一步:创建远程仓库

  1. 登录 GitHub → 点右上角 “+” → New repository

  2. 设置:

    • Repository name: my-project

    • Description(可选)

    • 勾选初始化 README(可选)


        2、把本地项目与 GitHub 远程仓库关联

✔️ 方式 1:已有本地代码,推送到远程
cd your-local-project
git init
git add .
git commit -m "initial commit"git remote add origin https://github.com/你的用户名/项目名.git
git push -u origin master
✔️ 方式 2:从 GitHub 克隆项目
git clone https://github.com/你的用户名/项目名.git

        3、后续使用 Git 与 GitHub 协作开发

本地开发 → Git 提交 → 推送到 GitHub:
git add .
git commit -m "更新说明"
git push origin master

6、常用 Git 操作命令整理

        1、Git 仓库操作

操作

命令

初始化仓库

git init

查看状态

git status

添加到暂存区

git add . 或 git add 文件名

提交到本地仓库

git commit -m "说明"

查看日志

git log

查看差异

git diff

克隆远程仓库

git clone 仓库地址

添加远程仓库

git remote add origin 地址

推送到远程仓库

git push origin 分支名

拉取远程仓库更新

git pull origin 分支名

创建分支

git branch 分支名

切换分支

git checkout 分支名

合并分支

git merge 分支名

        2、Git 文件操作

回滚操作

git checkout

恢复文件至某一状态或分支

重置状态

git reset

撤销暂存或提交

删除文件

git rm

从 Git 中删除文件

重命名文件

git mv

移动或重命名文件

清理文件

git clean

删除未被 Git 跟踪的文件(慎用)


7、Git 与 GitHub 的应用场景

  • 🚧 版本控制:随时查看历史、回滚、对比改动

  • 👥 团队协作:多人开发不冲突(基于分支)

  • 📦 开源项目管理:你可以发布自己的项目供他人使用、参与开发

  • ⛓️ 与 CI/CD 工具集成:如 GitHub Actions 实现自动测试/部署


8、总结

工具

作用

Git

本地版本控制,管理代码历史和分支

GitHub

在线远程仓库,托管项目、协作开发

Makefile

自动化构建(见前面内容)

学习 Git 最好的方法就是:

📌 每天练一点:创建仓库、提交、推送、拉取、解决冲突、合并分支……

📌 给自己的项目配上 README.md,在 GitHub 上搭建属于你的开发档案!

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

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

相关文章

React18 Transition特性详解

Transition 核心概念&#xff1a;Transition是一种标记非紧急任务更新的机制&#xff0c;它允许React在用户交互&#xff08;如输入&#xff09;期间保持界面的响应&#xff0c;同时准备后台更新 主要特点&#xff1a; 区分优先级&#xff1a;可以将更新分为紧急非紧急任务可中…

OpenHarmony概述与使用

1. OpenHarmony Hi3861 学习目标与任务 硬件基础知识&#xff1a;涵盖嵌入式硬件体系架构&#xff08;如 MCU 基础、硬件接口原理 &#xff09;、硬件设计流程&#xff08;原理图绘制、PCB Layout 规范 &#xff09;&#xff0c;了解常见硬件外设&#xff08;传感器、通信模…

大模型提示词工程实践:大语言模型文本转换实践

大模型文本转换 学习目标 在本课程中&#xff0c;我们将探究如何使用大语言模型来完成文本转换任务&#xff0c;例如语言翻译、拼写和语法检查、语气调整以及格式转换。 相关知识点 大模型文本转换 学习内容 1. 大模型文本转换 文本转换的核心定义与范畴 文本转换 是指通过技术…

力扣LCR024:反转链表206.反转链表双解法(经典面试题)

LCR 024. 反转链表 - 力扣&#xff08;LeetCode&#xff09;LCR 024. 反转链表 - 给定单链表的头节点 head &#xff0c;请反转链表&#xff0c;并返回反转后的链表的头节点。 示例 1&#xff1a;[https://assets.leetcode.com/uploads/2021/02/19/rev1ex1.jpg]输入&#xff1a…

Day 6: CNN卷积神经网络 - 计算机视觉的核心引擎

Day 6: CNN卷积神经网络 - 计算机视觉的核心引擎 📚 核心概念(5分钟理解) 什么是CNN卷积神经网络? 核心概念解释: CNN(Convolutional Neural Network): 专门处理具有网格状拓扑结构数据的深度学习模型,特别擅长图像识别 为什么需要: 传统全连接神经网络处理图像时参数量…

MacBook 本地化部署 Dify 指南

Dify 安装前的准备工作 确认系统满足最低配置要求&#xff0c;包括操作系统版本、内存、CPU 和存储空间。 检查是否已安装必要的依赖项&#xff0c;如 Python、Docker 确保网络环境稳定&#xff0c;能够访问所需的软件源或镜像仓库。 获取 Dify 安装包 https://docs.dify.ai…

疫情可视化:基孔肯雅热风险地图实战解析

> 一只白纹伊蚊的飞行半径是100米,而一套WebGIS系统能将疫情防控范围精确到每平方米。 2025年夏季,基孔肯雅热疫情在广东佛山爆发,短短一个月内感染病例占全省95%以上。这种由伊蚊传播的病毒性疾病,以**突发高热、剧烈关节痛和全身皮疹**为特征,患者关节疼痛可能持续数…

【14-模型训练细节】

训练步骤 1、指定输入和输出&#xff0c;即模型定义&#xff1b; 2、指定损失函数和成本函数&#xff1b; 3、指定训练算法&#xff0c;如梯度下降算法&#xff1b;训练细节 损失函数和成本函数用梯度下降算法训练模型 主要是求成本函数的偏导数&#xff0c;使用的是反向传播算…

ConcurrentDictionary 详解:.NET 中的线程安全字典

什么是 ConcurrentDictionary&#xff1f; ConcurrentDictionary<TKey, TValue> 是 .NET Framework 4.0 和 .NET Core/.NET 5 中引入的线程安全字典实现&#xff0c;位于 System.Collections.Concurrent 命名空间。它解决了多线程环境下操作字典时的同步问题&#xff0c…

集成电路学习:什么是URDF Parser统一机器人描述格式解析器

URDF Parser(URDF解析器)是ROS(Robot Operating System,机器人操作系统)中用于解析URDF(Unified Robot Description Format,统一机器人描述格式)文件的工具。URDF是一种基于XML(Extensible Markup Language,可扩展标记语言)规范的格式,用于描述机器人的结构、关节、…

老式大头显示器(CRT)和当前最高分辨率的LED显示器对比

老式 CRT&#xff08;阴极射线管&#xff09;和当前最顶尖的 LED&#xff08;包括 MicroLED / 高端 MiniLED / OLED&#xff09;显示器在画面清晰度极限相关的参数并列分析。1. 分辨率与像素密度指标老式 CRT&#xff08;PC/电视用&#xff09;顶级 LED 显示器&#xff08;2025…

北京JAVA基础面试30天打卡07

1. 缓存三大问题及解决方案问题场景后果常用解决方案缓存穿透请求的数据在缓存和数据库中都不存在&#xff08;恶意攻击或查询异常 ID&#xff09;每次请求都会打到数据库&#xff0c;导致 DB 压力骤增- 缓存空值&#xff08;短期缓存不存在的 key&#xff09;- 布隆过滤器&…

后量子密码学的迁移与安全保障:迎接量子时代的挑战

在当今数字化时代&#xff0c;信息安全无疑是保障个人隐私、企业运营和国家安全的基石。我们依赖密码学来保护敏感信息&#xff0c;从在线银行交易到机密军事通信&#xff0c;从医疗记录的存储到云计算中的数据传输&#xff0c;传统密码学为我们构筑起一道抵御恶意攻击的防线。…

Android 获取 UserAgent (UA) 的三种方式深度解析:差异、风险与最佳实践

引言 在 Android 开发中&#xff0c;获取 UserAgent (UA) 字符串是常见需求&#xff0c;尤其涉及网络请求和 WebView 交互时。开发者通常使用三种方式获取 UA&#xff1a; new WebView(context).getSettings().getUserAgentString()WebSettings.getDefaultUserAgent(context)…

Apache IoTDB 全场景部署:跨「端-边-云」的时序数据库 DB+AI 实战

时序数据正成为现代工业物联网的核心资产,从设备传感器到业务分析,数据需跨越端、边、云多个层级。本文将深入探讨 **Apache IoTDB** 如何实现全场景统一时序数据管理,并融合AI能力实现智能决策。 --- ### 一、为什么需要「端-边-云」协同? 在工业物联网场景中: - **端侧…

某地渣库边坡自动化监测服务项目

1. 项目简介该矿山主要从事稀有金属钽、铌及合金等的研发、生产、销售和进出口业务。具有科学的管理理念、精良的工艺装备、先进的技术水平、高素质的员工队伍等综合优势&#xff0c;已形成钽、铌金属及其合金材料等主要产业格局。公司产品被广泛应用于电子、通讯、航空、航天、…

redis(2)-java客户端使用(IDEA基于springboot)

一、准备工作首先确保&#xff1a;Linux 服务器上已安装并启动 Redis 服务Redis 已配置允许远程连接&#xff08;修改 redis.conf 文件&#xff09;开发环境&#xff08;IDEA&#xff09;已准备好二、Spring Boot 项目配置 Redis1. 添加依赖在pom.xml中添加 Redis 相关依赖&…

解决 vscode 编辑 markdown 文件时退格键/backspace 删除卡顿问题

文章目录发现问题解决问题发现问题 使用 vscode 编辑 markdown 时&#xff0c;发现有时按下退格键 backspace 后等待很久才会生效&#xff0c;卡顿明显 解决问题 从界面左下角的设置图标&#xff0c;打开 vscode 的键盘快捷键设置页面 Keyboard Shortcuts 搜索 backspace 按…

绿巨人VS Code多开项目单独管理每个项目单独使用一个不限制的augment

绿巨人VS Code多开项目单独管理每个项目单独使用一个不限制的augment 绿巨人VS前言 在AI辅助编程时代&#xff0c;Augment Code作为一款强大的代码助手工具&#xff0c;为开发者提供了智能代码补全、代码生成等功能。然而&#xff0c;免费版本的使用限制&#xff08;通常为每月…

Java 之抽象类和接口

一 、抽象类 1.1 、什么是抽象类&#xff1f; 就是当一个类不能描述具体的对象时&#xff0c;那么这个类就可以写成抽象类。比如说 Animal &#xff0c;我们知道 Animal 不能非常清楚的描述一个具体的动物&#xff0c;所以可以把 Animal 写成抽象类。还有就是我们知道父类中的方…