git 常用操作整理
一.git 的概念
Git 是一个分布式版本控制系统,用于跟踪文件的更改历史,帮助开发者管理代码的版本。以下是关于 Git 的一些基本概念:
1. 仓库(Repository)
- **本地仓库**:在你的计算机上存储的项目文件及其版本历史。你可以在这个仓库中进行所有的开发工作。
- **远程仓库**:通常托管在服务器上(如 GitHub、GitLab 等),用于团队协作和代码备份。远程仓库可以与本地仓库进行同步。

2. 版本控制
Git 记录了项目文件的每一次更改,允许你回溯到任何历史版本。每次提交(commit)都会创建一个快照,记录当前文件的状态。
3. 分支(Branch)
分支是 Git 的一个重要特性,它允许你在不影响主分支(如 `main` 或 `master`)的情况下进行开发。你可以创建新的分支来开发新功能、修复错误等,完成后可以将分支合并回主分支。
4. 提交历史(Commit History)
Git 记录了所有的提交历史,包括每次提交的作者、日期、提交说明等信息。这使得团队成员可以了解项目的开发进度和更改细节。
5. 暂存区(Staging Area)
暂存区是一个中间区域,你可以在这个区域对要提交的文件进行最后的调整。通过 `git add` 命令将文件添加到暂存区,然后通过 `git commit` 命令将暂存区的内容提交到仓库。
6. 克隆(Clone)
克隆是将远程仓库的代码复制到本地的过程。通过 `git clone` 命令,你可以在本地创建一个与远程仓库相同的副本。
7. 拉取(Pull)和推送(Push)
- **拉取(Pull)**:从远程仓库获取最新的更改并合并到本地仓库。
- **推送(Push)**:将本地仓库的更改推送到远程仓库。
8. 合并(Merge)
将一个分支的更改合并到另一个分支。通常用于将功能分支的更改合并到主分支。
9. 回滚(Revert)
如果某个提交导致了问题,可以使用 `git revert` 命令回滚到之前的某个提交,而不影响后续的提交历史。
Git 的这些概念和功能使得它成为一个强大的工具,帮助开发者高效地管理代码和协作开发。通过理解这些基本概念,可以更好地利用 Git 进行版本控制。
二.安装配置git
以下是整理的Git教程,涵盖常用功能、代码及操作流程。内容分为以下几个部分:
2.1. 安装Git
Git的安装方式因操作系统不同而有所差异:
- **Windows**:从[Git官方网站](https://git-scm.com/download/win)下载安装程序,然后按照提示进行安装。
- **Mac**:可以使用Homebrew安装,命令为`brew install git`;也可以从[Git官方网站](https://git-scm.com/download/mac)下载安装程序来安装。
- **Linux**:以Ubuntu为例,使用命令`sudo apt-get install git`来安装。
2.2. 配置Git
安装完成后,需要配置用户名和邮箱:
注: --global`参数表示全局配置,对所有Git仓库有效。若要为特定仓库单独配置,可去掉该参数。
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
三. 常用操作流程与代码
3.1 创建本地仓库
在项目目录下执行以下命令,可将该目录初始化为一个Git仓库:
git init
3.2 克隆远程仓库
将远程仓库的代码复制到本地:
git clone <远程仓库地址>
3.3 添加文件到暂存区
将文件添加到暂存区:
git add <文件名>
添加所有修改的文件:
git add .
3.4 提交文件到本地仓库
将文件提交到本地仓库:
git commit -m "提交说明"
3.5 查看状态
查看当前仓库的状态:
git status
3.6 查看提交历史
查看仓库的提交历史:
git log
3.7 推送本地代码到远程仓库
将本地更改推送到远程仓库:
git push origin <分支名>
3.8 从远程仓库拉取代码
拉取远程仓库的最新代码:
git pull origin <分支名>
3.9 创建和切换分支
创建新分支:
git branch <分支名>
切换到指定分支:
git checkout <分支名>
创建并切换到新分支:
git checkout -b <分支名>
3.10 合并分支
将分支的更改合并到目标分支:
git merge <要合并的分支名>
四. 操作流程示例
4.1. 初始化本地仓库:
mkdir my_project
cd my_project
git init
4.2. 创建并编辑文件:
touch README.md
echo "This is my project" > README.md
4.3. 添加文件到暂存区:
git add README.md
4.4. 提交文件到本地仓库:
git commit -m "Add README file"
4.5. 在GitHub上创建远程仓库,并关联本地仓库:
git remote add origin <远程仓库地址>
4.6. 推送本地代码到远程仓库:
git push -u origin main
由于篇幅较长且整理过程较为繁琐,我计划逐步整理并发布后续内容。我深信,科技应当服务于大众,我希望可以为促进知识的共享与学习,贡献自己绵薄之力,根据我的整理节省后来人的时间。
整理不易,诚望各位看官点赞 收藏 评论 予以支持,这将成为我持续更新的动力源泉。若您在阅览时存有异议或建议,敬请留言指正批评,让我们携手共同学习,共同进取,吾辈自当相互勉励!
相关文章:
git 常用操作整理
一.git 的概念 Git 是一个分布式版本控制系统,用于跟踪文件的更改历史,帮助开发者管理代码的版本。以下是关于 Git 的一些基本概念: 1. 仓库(Repository) - **本地仓库**:在你的计算机上存储的项目文件及…...
JAVA数据库增删改查
格式 Main.java(测试类) package com.example;import com.example.dao.UserDao; import com.example.model.User;public class Main {public static void main(String[] args) {UserDao userDao new UserDao();// 测试添加用户System.out.println(" 添加用户 ");Us…...
上海某海外视频平台Android高级工程师视频一面
问的问题比较细,有很多小细节在里面,平时真不一定会注意到,做一个备忘: 1.Object类里面有哪些方法? Object 类是 Java 中所有类的根类,它定义了一些基本方法,供所有类继承和重写1. 常用方法 1…...
前后端数据序列化:从数组到字符串的旅程(附优化指南)
🌐 前后端数据序列化:从数组到字符串的旅程(附优化指南) 📜 背景:为何需要序列化? 在前后端分离架构中,复杂数据类型(如数组、对象)的传输常需序列化为字符…...
idea报错:程序包不存在
这里的程序包是我们项目里自己写的,idea却报错不存在。 解决方法: 参考这位大佬的方法,OK。...
【TVM教程】使用 TVMC Micro 执行微模型
Apache TVM是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/ 作者:Andrew Reusch, Mehrdad Hessar 本教程介绍如何用 C runtime 自动调优模型。 安装 microTVM Python 依赖项…...
spring boot 整合redis
1.在pom文件中添加spring-boot-starter-data-redis依赖启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2.编写三个实体类 RedisHash("p…...
进程间信号
进程间信号 信号的认识信号的产生进程对信号的处理机制普通信号的处理机制实时信号的处理机制 信号集操作函数信号的捕捉 信号的认识 信号的概念: 信号是一种软件中断,它用于通知进程一个异步事件的发生。 这些事件可能来自系统内部(如硬…...
2011-2019年各省地方财政国债还本付息支出数据
2011-2019年各省地方财政国债还本付息支出数据 1、时间:2007-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、地方财政粮油物资储备管理等事务 4、范围:31省 5、指标说明:地方财政的国债…...
2025华为软件精英挑战赛2600w思路分享
这里写自定义目录标题 得分展示对象定义请求价值计算时间同步删除操作完整思路 得分展示 对象定义 // 将一个磁盘划分为多个基于标签聚合的区块 class Block{ public:int tag 0; // 区块标签int start_pos;int end_pos;int id;int use_size 0;int v;// 为区块确定范围Bloc…...
WEB安全-CTF中的PHP反序列化漏洞
什么是序列化? 简单来说序列化是将数组或对象转换成字符串的过程,这样的好处是利于对象存储与传输,在PHP中,序列化函数是serialize(),反序列化是unserialize() 无类序列化 无类序列化顾名思义就是不包含class的序列…...
【论文阅读】Co2l: Contrastive continual learning
原文链接:[2106.14413] Co$^2$L: Contrastive Continual Learning 阅读本文前,需要对持续学习的基本概念以及面临的问题有大致了解,可参考综述: Wang L, Zhang X, Su H, et al. A comprehensive survey of continual learning: …...
OpenMCU(五):STM32F103时钟树初始化分析
概述 本文主要描述了STM32F103初始化过程系统时钟的初始化,主要描述了系统时钟的初始化,AHB总线时钟,APB总线时钟等的初始化。 硬件板卡3d图 时钟树 STM32F103的时钟树,如下所示: 时钟源选择 从STM32F103的时钟树框图,我们可以…...
ISIS报文
IS-IS 报文 目录 IS-IS 报文 一、报文类型与功能 二、报文结构解析 三、核心功能特性 四、典型应用场景 五、抓包数据分析 六、总结 IS-IS(中间系统到中间系统)协议报文是用于链路状态路由协议中网络设备间交换路由信息的关键载体,其设…...
【Android】BluetoothSocket.connect () 的实现与协议栈交互源码解析
本文以 Android 蓝牙框架中的BluetoothSocket.connect()方法为切入点,深入剖析 Android 设备与远程蓝牙设备建立连接的全流程。从 Java 层的 API 调用出发,逐步追踪至 JNI 层的接口转发,最终进入 Buedroid 协议栈(RFCOMM/L2CAP 层),揭示蓝牙连接的核心机制。重点解析了权…...
首屏加载时间优化解决
🤖 作者简介:水煮白菜王(juejin/csdn同名) ,一位前端劝退师 👻 👀 文章专栏: 高德AMap专栏 ,记录一下平时学习在博客写作中记录,总结出的一些开发技巧✍。 感…...
RabbitMQ--延迟队列事务消息分发
目录 1.延迟队列 1.1应用场景 1.2利用TTL死信队列模拟延迟队列存在的问题 1.3延迟队列插件 1.4常见面试题 2.事务 2.1配置事务管理器 3.消息分发 3.1概念 3.2应用场景 3.2.1限流 3.2.2负载均衡 1.延迟队列 延迟队列(Delayed Queue),即消息被发送以后, 并…...
Linux服务器组建与管理
#!/bin/bash #判断是否是root用户if [ "$USER" ! "root" ]; then echo "不是root用户,无法进行安装操作" exit 1 fi#关闭防火墙systemctl stop firewalld && systemctl disable firewalld && echo "防火墙已经关…...
程序化广告行业(48/89):DSP与外部平台对接的关键要点解析
程序化广告行业(48/89):DSP与外部平台对接的关键要点解析 大家好!在之前的博客中,我们逐步深入了解了程序化广告行业的诸多知识。一直以来,我都希望能和大家一起在这个领域探索,不断进步&#…...
设计模式 Day 2:工厂方法模式(Factory Method Pattern)详解
继 Day 1 学习了单例模式之后,今天我们继续深入对象创建型设计模式——工厂方法模式(Factory Method)。工厂方法模式为对象创建提供了更大的灵活性和扩展性,是实际开发中使用频率极高的一种设计模式。 一方面,我们将简…...
自动驾驶浪潮下,HMI 设计如何保障安全与便捷?
自动驾驶系统与 HMI 设计的关联性 自动驾驶系统涵盖了一系列复杂的传感器技术、算法以及执行机构。从激光雷达、摄像头等环境感知传感器,到用于处理海量数据的人工智能算法,再到控制车辆行驶的动力与转向执行系统,各部分协同工作,…...
瑞昱RTD2556QR显示器驱动芯片
一、概述 RTD2556QR芯片是由Realtek公司精心研发的一款高性能显示驱动芯片,专为满足现代显示设备对高分辨率、多功能接口及稳定性能的需求而设计。该芯片凭借其卓越的技术特性和广泛的应用领域,在显示驱动市场中占据重要地位。它集成了多种先进的功能模…...
复合缩放EfficientNet原理详解
1. 为什么复合缩放更高效? (1)单维度缩放的瓶颈 增加深度(层数): 更深的网络可以学习更复杂特征,但容易导致梯度消失/爆炸问题,且计算量随深度线性增长。 问题:深层网络…...
线程等待与唤醒的几种方法与注意事项
写在前面:无论是调用哪种等待和唤醒的方法,都必须是当前线程所持有的对象,否则会导致 java.lang.IllegalMonitorStateException 等并发安全问题。 以三个线程循环打印 XYZ 为例。 一、方法 1.1 Object 对象锁 可以通过 synchronized 对方…...
rustdesk 客户端使用
配置中继服务器 RustDesk 搭建-CSDN博客 配置客户端,服务端(控制方,被控方) 1.下载rustdesk.exe(windows为例) 2.完成后如下 3.配置...
react+antd封装一个可回车自定义option的select并且与某些内容相互禁用
需求背景 一个select框 现在要求可多选 并且原有一个any的选项 其他选项为输入后回车自己增加 若选择了any 则其他选项不可选择反之选择其他选项any不可选择 并且回车新增时也不可直接加入到选中数组只加入到option内 并且不可重复添加新内容 实现过程 <Form.Item …...
碳化硅 MOSFET三相逆变电路损耗新算法
基 于 碳 化 硅 MOSFET三相逆变电路损耗新算法 摘 要 提出了一种三相逆变电路功率开关器件损耗计算的新方法.为了达到将高频电力电子电路和实时仿真算 法 相 结 合 应 用 于 嵌 入 式 实 时 仿 真 平 台 的 目 的 ,针 对 工 程 应 用 中 逆 变 器 损 耗 计 算 的 实…...
增加等IO状态的唤醒堆栈打印及缺页异常导致iowait分析
一、背景 在之前的博客 在计算进程D状态持续时间及等IO的时间遇到的一处问题-CSDN博客 里,我们修复了一处在抓取D状态及等IO状态堆栈的监控程序的一处时间计算bug,在这篇博客里,我们进一步丰富监控程序,在进程iodelay被唤醒时&am…...
nodejs:midi-writer-js 将基金净值数据转换为 midi 文件
开放式基金是没有公布每日交易量的。 /funds/data/660008.csv 文件开头: date,jz,ljjz 2016-01-04,1.1141,1.1141 2016-01-05,1.1161,1.1161 2016-01-06,1.1350,1.1350 这是一个将开放式基金数据转换为 MIDI音乐的 js 程序示例。该程序将基金净值映射为 MIDI音符的…...
新能源汽车空调系统(R134A)性能评估(一)
国内外主流空调系统厂家:贝尔、德尔福、空调国际、法雷奥、电装、松芝、杰信、新电、豫新等 泛亚汽车的空调电子部是比较优秀的整车空调研发团队。 空调系统综合试验台架是一套由试验室、风量测定装置、空气调和器、空气温度测定装置、湿度测定装置、加热器试验辅助…...
