git的使用(简洁版)
什么是 Git?
Git 是一个分布式版本控制系统 (DVCS),用于跟踪文件的更改并协调多人之间的工作。它由 Linus Torvalds 在 2005 年创建,最初是为了管理 Linux 内核的开发。Git 的主要目标是提供高效、易用的版本控制工具,使得开发者能够轻松地管理代码库的变更历史。
Git 的核心概念
- Repository(仓库):存储项目代码和版本历史的地方。可以是本地仓库,也可以是远程仓库。
- Commit(提交):一个代码变更的记录,包含了作者、时间、描述和变更内容。
- Branch(分支):从主分支(通常是
master
或main
)分出来的独立开发线。允许多个开发者同时工作在不同的特性或修复上。 - Merge(合并):将一个分支的变更合并到另一个分支的过程。
- Clone(克隆):从一个远程仓库复制一份完整的代码库到本地。
- Pull(拉取):从远程仓库获取最新的变更并合并到本地分支。
- Push(推送):将本地分支的变更推送到远程仓库。
- Status(状态):查看当前工作目录中文件的变更状态。
- 用户A从服务端仓库中获取最新的代码和文件,这个过程称为“Pull”。通过这种方式,他们可以在自己的计算机上获得项目的最新状态。
- 在完成一些修改或添加新功能后,用户A会将自己的更改推送到服务端仓库,这就是所谓的“Push”操作。这样做的目的是确保其他团队成员也能看到这些更新。
- 同样地,用户B和用户C也会执行类似的流程——先从服务端仓库拉取数据,然后再将他们的工作成果上传回去。
-
抓取/克隆 (fetch/clone):首先,你需要从一个远程仓库(Remote)中获取代码。这个操作通常通过
git clone
命令完成,它会将远程仓库的所有内容复制到你的本地计算机上。 -
检出 (checkout):在本地仓库(Repository)中,你可以使用
git checkout
命令切换到不同的分支或提交记录。这样可以让你在一个安全的环境中测试和修改代码。 -
添加 (add):当你对文件进行了更改并希望将其纳入版本控制时,需要使用
git add
命令将这些文件添加到暂存区(Index)。这是提交前的一个必要步骤。 -
提交 (commit):接下来是执行
git commit
命令来正式保存你所做的所有改动。此时,Git会创建一个新的快照,并附带一条描述此次变更的信息。 -
拉取 (pull):为了确保你的本地副本是最新的,可以通过运行
git pull
命令来合并任何来自远程仓库的新提交。此操作相当于先执行git fetch
以下载最新的数据,然后用git merge
将它们整合进当前分支。 -
推送 (push):最后一步是使用
git push
命令将你在本地做出的修改推送到远程服务器上。这样其他团队成员就可以看到并使用你的更新了。
Git 快速入门
1. 安装 Git
- Windows: 下载并安装 Git for Windows。
- macOS: 使用 Homebrew 安装,
brew install git
。 - Linux: 使用包管理器安装,例如在 Ubuntu 上使用
sudo apt-get install git
。
2. 配置 Git
在开始使用 Git 之前,你需要配置你的用户名和邮箱地址,这些信息将会出现在你的提交记录中。
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
3. 创建新仓库
你可以通过两种方式创建一个新的 Git 仓库:
创建本地仓库的方法有两种:
- 一种是创建全新的仓库:
git init
,会在当前目录初始化创建仓库。 - 另一种是克隆远程仓库:
git clone [url]
-
从零开始创建一个新的仓库:
# 初始化一个新的 Git 仓库 git init my-project cd my-project
-
克隆一个已有的远程仓库:
git clone https://github.com/username/my-project.git cd my-project
创建完多出了一个被隐藏的.git
目录,这就是本地仓库Git的工作场所。
4. 添加文件
可以简单理解为,git add
命令就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit
就可以一次性把暂存区的所有修改提交到仓库。
# 创建一个新文件
echo "Hello, World!" > README.md# 将文件添加到暂存区
git add README.md# 查看状态
git status
修改文件“R.md”,未暂存:
执行git add .
暂存:
5. 提交变更
当你完成了一些工作,可以通过创建一个提交(Commit)来记录这些变更。
# 提交变更
git commit -m "Initial commit"
提交时,-m
参数后面跟随的是提交信息,用于描述这次变更的内容。
6. 查看提交历史
你可以使用 git log
命令查看仓库的提交历史。
git log
7. 创建分支
Git 的分支功能非常强大,允许你在不影响主分支的情况下进行开发。
# 创建并切换到新分支
git branch my-feature
git checkout my-feature
或者使用一行命令:
git checkout -b my-feature
8. 合并分支
当你在分支上完成了开发工作,可以将该分支的变更合并到主分支。
# 切换回主分支
git checkout main# 合并 my-feature 分支到 main 分支
git merge my-feature
9. 删除分支
当你不再需要某个分支时,可以将其删除。
git branch -d my-feature
10. 远程仓库操作
Git 支持与远程仓库交互,例如 GitHub、GitLab 等。
-
添加远程仓库:
git remote add origin https://github.com/username/my-project.git
-
推送本地分支到远程仓库:
git push -u origin main
-u
参数表示将本地分支与远程分支关联,这样以后可以直接使用git push
而不需要指定远程分支。 -
从远程仓库拉取更新:
git pull origin main
常用 Git 命令
git init
: 初始化一个新仓库。git clone [url]
: 克隆一个远程仓库到本地。git add [file]
: 将文件添加到暂存区。git commit -m "message"
: 提交暂存区的变更。git status
: 查看工作目录的状态。git log
: 查看提交历史。git branch
: 查看分支。git checkout [branch]
: 切换分支。git merge [branch]
: 合并指定分支到当前分支。git push [remote] [branch]
: 推送变更到远程仓库。git pull [remote] [branch]
: 从远程仓库拉取并合并变更。
更多 Git 功能
git diff
: 查看工作目录和暂存区之间的差异。git stash
: 临时保存当前工作目录的变更,便于切换分支或处理紧急任务。git rebase
: 将一个分支的变更应用到另一个分支上,通常用于保持提交历史的整洁。git tag
: 为特定的提交打上标签,通常用于标记发布版本。
总结
Git 是一个强大的工具,通过掌握这些基本的命令,你可以开始使用 Git 管理你的代码。随着使用的深入,你还可以学习更多高级的 Git 功能,如 rebase
、stash
、tag
等。
相关文章:
git的使用(简洁版)
什么是 Git? Git 是一个分布式版本控制系统 (DVCS),用于跟踪文件的更改并协调多人之间的工作。它由 Linus Torvalds 在 2005 年创建,最初是为了管理 Linux 内核的开发。Git 的主要目标是提供高效、易用的版本控制工具,使得开发者…...
数据库编程(sqlite3)
一:数据库分类 常用的数据库 大型数据库 :Oracle商业、多平台、关系型数据库功能最强大、最复杂、市场占比最高的商业数据库 中型数据库 :Server是微软开发的数据库产品,主要支持windows平台 小型数据库 : mySQL是一个小型关系型…...
Python 中如何处理异常?
在Python中,异常处理是一种重要的编程技术,它允许开发者优雅地处理程序运行过程中出现的错误或异常情况,而不是让程序直接崩溃。 通过异常处理,我们可以使程序更加健壮、用户友好。 异常处理的基本结构 Python中最基本的异常处…...
RHCE——nfs网络文件系统
简介 NFS(Network File System,网络文件系统)是FreeBSD支持的文件系统中的一种,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用…...
【人工智能】Python常用库-Scikit-learn常用方法教程
Scikit-learn 是一个功能强大的机器学习库,支持数据预处理、分类、回归、聚类、降维等功能,广泛用于模型开发与评估。以下是 Scikit-learn 的常用方法及详细说明。 1. 安装与导入 安装 Scikit-learn: pip install scikit-learn导入基本模块…...
sargo 官方镜像刷机
资料 官方镜像https://developers.google.cn/android/images?hlzh-cn zip镜像 https://googledownloads.cn/dl/android/aosp/sargo-rq3a.211001.001-factory-2a1befea.zip 使用 fastboot 刷写 下载好的镜像 步骤 先使用命令 adb reboot bootloader 再使用./falsh-all.sh 命…...
解决首次加载数据空指针异常
起初效果: 使用async...await异步加载数据 最终效果: 代码: <template><div class"user-list-container"><!-- 加载状态 --><div v-if"loading" class"loading">正在加载用户数据..…...
BERT的中文问答系统35
优化GUI布局、显示问答内容、增加自动搜索功能等。以下是完整的项目结构和代码: 项目结构 xihe241117/ ├── data/ │ └── train_data.jsonl ├── logs/ ├── models/ │ └── xihua_model.pth ├── requirements.txt ├── README.md └── 智…...
若依框架部署在网站一个子目录下(/admin)问题(
部署在子目录下首先修改vue.config.js文件: 问题一:登陆之后跳转到了404页面问题,解决办法如下: src/router/index.js 把404页面直接变成了首页(大佬有啥优雅的解决办法求告知) 问题二:退出登录…...
DB2数据库
DB2数据库是IBM公司开发的一种关系数据库管理系统(RDBMS),它支持多种数据模型,包括关系模型、文档模型、图模型等。DB2最初是为大型机环境设计的,但现在它已扩展到各种平台,包括Windows、Linux和Unix等&…...
python excel接口自动化测试框架!
今天采用Excel继续写一个接口自动化测试框架。 设计流程图 这张图是我的excel接口测试框架的一些设计思路。 首先读取excel文件,得到测试信息,然后通过封装的requests方法,用unittest进行测试。 其中,接口关联的参数通过正则进…...
Spring框架整合单元测试
目录 一、配置文件方式 1.导入依赖 2.编写类和方法 3.配置文件applicationContext-test.xml 4.测试类 5.运行结果 二、全注解方式 1.编写类和方法 2.配置类 3.测试类 4.运行结果 每次进行单元测试的时候,都需要编写创建工厂,加载配置文件等相关…...
Java部分新特性
模式匹配 instance of 模式匹配 之前写法 public void print(Object o) {if (o instanceof String){String str (String) obj;System.out.println("This is a String of length " s.length());} else {System.out.println("This is not a String");} …...
keepalived+lVS(dr)高可用集群
keepalivedlVS(dr)高可用集群 规划 服务器名称IP描述masterkeepalivedlvsVIP:192.168.238.100DIP:192.168.238.151keepalived的master节点和lvs负载均衡backupkeepalivedlvsVIP:192.168.238.100DIP:192.168.238.152keepalived的备份节点和lvs负载均衡server1VIP:192.168.238.…...
【前端】JavaScript中的柯里化(Currying)详解及实现
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯什么是柯里化?💯柯里化的特点💯柯里化的简单示例💯通用的柯里化实现💯柯里化让代码更易读的原因💯…...
Cyberchef 辅助网络安全运营-数据格式转换
在网络安全的世界中,经常会遇到各种格式的数据,比如二进制,比如说16进制,URL编码,HTML编码,Unicode编码,Base格式的编码。网络安全运营一个明确的目标就是把这些不同的数据格式换成为可读的字符…...
鸿蒙面试 --- 性能优化(精简版)
一、性能优化的三个方面 感知流畅:通过合理运用动画提升用户对应用操作的感知流畅度,同时避免因动画滥用导致性能下降。涵盖视觉感知优化、转场场景动效感知流畅(如出现 / 消失转场、导航转场、模态转场、共享元素转场等)&#x…...
qsort函数详解+代码展示
文章目录 概要系列文章目录前言(1) 定义(2) 使用(举例子 上代码)1、定义数组:2、定义比较函数:3、调用 qsort:4、输出结果: (3) 注意事项 小结 概要 本篇博客将详细地介绍qsort排序函数,&#x…...
ms-hot29 解码方法
leetcode原题链接: 解码方法 ms-hot目录: ms-hot目录 上一篇:ms-hot28 合并两个有序数组 下一篇:二叉树的中序遍历 题目描述 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : "1" -> A "2"…...
【5】STM32·FreeRTOS·临界段保护与调度器挂起
目录 一、临界段代码保护简介 二、临界段代码保护函数介绍 2.1、调用示例 2.2、内部实现 三、任务调度器的挂起和恢复 3.1、调用示例 3.2、内部实现 一、临界段代码保护简介 什么是临界段:临界段代码也叫做临界区,是指那些必须完整运行ÿ…...
daos源码编译
1. 前言 本文详细介绍如何在almalinux8.9上编译daos.2.0.0源码。系统环境如下: daos: 2.0.0 linux os: almalinux 8.9 linux kernel: 4.18.0-513.5.1.el8_9.x86_64之所以选择2.0.0版本,是因为daos从2.0.0开始是一个全新的架构设计&a…...
Flink--API 之Transformation-转换算子的使用解析
目录 一、常用转换算子详解 (一)map 算子 (二)flatMap 算子 (三)filter 算子 (四)keyBy 算子 元组类型 POJO (五)reduce 算子 二、合并与连接操作 …...
火山引擎VeDI在AI+BI领域的演进与实践
随着数字化时代的到来,企业对于数据分析与智能决策的需求日益增强。作为新一代企业级数据智能平台,火山引擎数智平台VeDI基于字节跳动多年的“数据驱动”实践经验,也正逐步在AI(人工智能)与BI(商业智能&…...
java获取docker镜像构建日志
在Java中获取Docker镜像的构建日志,你可以使用Docker Engine API。以下是一个使用OkHttp库的示例代码,用于获取构建日志: import okhttp3.*; import java.io.IOException; public class DockerLogsFetcher { private static final St…...
Spring-boot整合Webservice服务端
Spring Boot整合Webservice服务端 本文是基于前辈一顿吃不饱的文章SpringBoot整合WebService(服务端客户端)-CSDN博客,由于工作需要用.NET调用其他系统发布的WebService服务,尝试用java搭建一个WebService服务端测试一下…...
动静分离具体是怎么实现的?
在 Nginx 中实现动静分离是一种常见的优化手段,用于提高网站的性能和可扩展性。以下是 Nginx 动静分离的一些基本概念和配置方法: 1、什么是动静分离: 动静分离是指将网站的静态资源(如图片、CSS、JavaScript 文件)与…...
如何取出.vmdk文件中的数据
前提:我的云服务器到期了,于是我将云服务器导出了.vmdk镜像。本想在vm虚拟机中启动,但是一直报错。很是苦恼。 首先下载DiskGenius这个软件。 点击磁盘-》打开磁盘 打开.vmdk文件 可以看到内部的文件了,可以选择对应文件导出到桌…...
Vue2中 vuex 的使用
1.安装 vuex 安装vuex与vue-router类似,vuex是一个独立存在的插件,如果脚手架初始化没有选 vuex,就需要额外安装。 yarn add vuex3 或者 npm i vuex3 233 Vue2 Vue-Router3 Vuex3 344 Vue3 Vue-Router4 Vuex4 2. 新建 store/index.j…...
Swift 数据类型
Swift 数据类型 Swift 是一种强类型语言,这意味着在 Swift 中声明的每个变量和常量都必须具有明确的类型。Swift 的类型系统旨在帮助开发者编写清晰、安全的代码。本文将详细介绍 Swift 中的基本数据类型,包括整数、浮点数、布尔值、字符和字符串。 整…...
【pyspark学习从入门到精通22】机器学习库_5
训练-验证分割 TrainValidationSplit 模型为了选择最佳模型,会对输入数据集(训练数据集)进行随机分割,分成两个子集:较小的训练子集和验证子集。分割只执行一次。 在这个例子中,我们还将使用 ChiSqSelect…...
Zookeeper3.5.8集群部署
环境说明 准备三台服务器,我这边是虚拟机,分别为:bigdata141、bigdata142、bigdata143 下载安装包 下载链接:Index of /dist/zookeeper/zookeeper-3.5.8 下载完后,上传到其中一台服务器,我这边上传到 b…...
Linux 无图形界面磁盘空间排查与优化实践20241127
Linux 无图形界面磁盘空间排查与优化实践 引言:磁盘空间问题的痛点与挑战 🔍 常见问题 当系统磁盘空间超过 90% 时,不仅可能导致性能下降,还可能让关键操作无法正常完成。这种情况下,如何高效且精准地排查磁盘占用来…...
TCP socket api详解 续
文章目录 守护进程怎么做到?setsid返回值 dev/null字符文件 daemonTCP协议 退出的时候呢? 会话有很多后台任务,bash肯定会退,那后台会话怎么办呢? 理论上也要退的,但实际上关了bash,bash肯定要…...
一道经典的整数划分题——分弹珠
CSDN 博客:一道经典的整数划分题——分弹珠 一、题目描述 这道题目是一道经典的整数划分问题,要求将 (M) 个弹珠分到 (N) 个盘子中,满足以下条件: 允许盘子为空。两种分法被认为相同当且仅当分配的弹珠数量相同(不考…...
浏览器缓存与协商缓存
1. 强缓存(Strong Cache) 定义 强缓存是指在缓存的资源有效期内,浏览器会直接使用缓存中的数据,而不会发起网络请求。也就是说,浏览器会直接从本地缓存读取资源,不会与服务器进行任何交互。 如何控制强缓…...
Maven 如何配置忽略单元测试
在使用 Maven 进行项目构建时,有时您可能希望跳过测试阶段。 这在确保代码更改不影响测试结果或需要快速部署项目的情况下特别有用。 Maven 提供了多种方法来在构建过程中跳过测试。 为什么跳过测试? 加速构建:对于具有大量测试用例的大项…...
哪里能找到好用的动物视频素材 优质网站推荐
想让你的短视频增添些活泼生动的动物元素?无论是搞笑的宠物瞬间,还是野外猛兽的雄姿,这些素材都能让视频更具吸引力。今天就为大家推荐几个超实用的动物视频素材网站,不论你是短视频新手还是老手,都能在这些网站找到心…...
Python中的23种设计模式:详细分类与总结
设计模式是解决特定问题的通用方法,分为创建型模式、结构型模式和行为型模式三大类。以下是对每种模式的详细介绍,包括其核心思想、应用场景和优缺点。 一、创建型模式(Creational Patterns) 创建型模式关注对象的创建࿰…...
研0找实习【学nlp】14--BERT理解
以后做项目,一定要多调查,选用不同组合关键词多搜索! BERT论文解读及情感分类实战_bert模型在imdb分类上的准确率已经到达了多少的水平-CSDN博客 【深度学习】-Imdb数据集情感分析之模型对比(4)- CNN-LSTM…...
【AI日记】24.11.27 学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 核心工作 内容:学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster时间:8 小时心得:在学习别人的 notebook 的时候,碰到不懂的知识点,…...
HCIP——堆叠技术实验配置
目录 一、堆叠的理论知识 二、堆叠技术实验配置 三、总结 一、堆叠的理论知识 1.1堆叠概述: 是指将两台交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据的转发。 1.2堆叠的基本概念 堆叠系统中所有的单台…...
trtllm 部署新体验
实验清华大模型和trtllm Chatglm3 pip3 install tensorrt_llm -U --pre --extra-index-url https://pypi.nvidia.com 要安装git来下载仓库 使用这个chatglm的例子 安装依赖 用最新的glm3的model 然后开始转换model 官方写错了,这应该是个-,不是_&a…...
部署 DeepSpeed以推理 defog/sqlcoder-70b-alpha 模型
部署 DeepSpeed 以推理 defog/sqlcoder-70b-alpha 这样的 70B 模型是一个复杂的过程,涉及多个关键步骤。下面是详细的步骤,涵盖了从模型加载、内存优化到加速推理的全过程。 1. 准备环境 确保你的环境配置正确,以便能够顺利部署 defog/sqlc…...
node.js基础学习-http模块-创建HTTP服务器、客户端(一)
http模块式Node.js内置的模块,用于创建和管理HTTP服务器。Node.js使用JavaScript实现,因此性能更好。 使用http模块创建服务器,我们建议使用commonjs模块规范,因为很多第三方的组件都使用了这种规范。当然es6写法也支持。 下面就是…...
Cobalt Strike 4.8 用户指南-第十一节 C2扩展
11.1、概述 Beacon 的 HTTP 指标由 Malleable Command and Control (Malleable C2) 配置文件控制。Malleable C2 配置文件是一个简单的程序,它指定如何转换数据并将其存储在事务中。转换和存储数据的同一程序(向后解释࿰…...
STM32 使用ARM Compiler V6 编译裸机 LWIP协议栈报错的解决方法
在lwip 的cc.h 中使用以下宏定义,来兼容 V5 和 V6编译器 #if defined (__ARMCC_VERSION) && (__ARMCC_VERSION > 6010050) /* ARM Compiler V6 */ #define __CC_ARM /* when use v6 compiler define this */ #endifV6编译的速度确实比V5块了好多倍。 …...
K8S简介、使用教程
以下是关于 Kubernetes(通常缩写为 K8S)的简介和使用教程: 一、Kubernetes 简介 定义与作用 Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由谷歌开发,后捐赠给云原生计算基…...
Scala—Map用法详解
Scala—Map用法详解 在 Scala 中,Map 是一种键值对的集合,其中每个键都是唯一的。Scala 提供了两种类型的 Map:不可变 Map 和可变 Map。 1. 不可变集合(Map) 不可变 Map 是默认的 Map 实现,位于 scala.co…...
2024御网杯信息安全大赛个人赛wp(misc方向)
目录 一.信息安全大赛的通知二、编码转换1. 第一部分2. 第二部分3. 第三部分 三、1.txt四、buletooth 题目附件以及工具链接: 通过网盘分享的文件:御网杯附件 链接: https://pan.baidu.com/s/1LNA6Xz6eZodSV0Io9jGSZg 提取码: jay1 –来自百度网盘超级会…...
DeepSpeed 配置文件(DeepSpeed Configuration Files)详解:中英文解释
中文版 本文详细介绍 DeepSpeed 配置文件,结合 4 卡 3090 的实际使用场景,重点解释各个参数的含义,并提供应对爆显存的方案。 DeepSpeed 配置文件详解:从基础到实战 DeepSpeed 是用于加速大规模分布式训练的重要工具,…...