Git 使用教程:从入门到精通
Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创建,用于有效、高速地处理从小到大的项目版本管理。本教程将带你从 Git 的安装开始,逐步学习到如何使用 Git 进行日常的版本控制操作。
安装 Git
Windows
- 访问 Git 官方网站 下载 Git。
- 运行下载的安装程序。
- 按照安装向导的指示完成安装,确保选择了“Add Git to PATH”选项。
macOS
-
通过 Homebrew 安装 Git:
brew install git -
或者,访问 Git 官方网站 下载并安装。
Linux
- 使用包管理器安装 Git,例如在 Ubuntu 上:
sudo apt-get update sudo apt-get install git
配置 Git
在首次使用 Git 之前,你需要配置你的用户信息:
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
创建和克隆仓库
创建新仓库
- 创建一个新的目录,然后初始化为 Git 仓库:
mkdir my-project cd my-project git init
克隆现有仓库
- 克隆一个远程仓库到本地:
git clone https://github.com/user/repo.git
基本的 Git 工作流程
添加文件
-
添加文件到暂存区:
git add <file> -
添加所有文件到暂存区:
git add .
提交更改
- 提交暂存区的文件到本地仓库:
git commit -m "Your commit message"
查看状态
- 查看当前仓库的状态:
git status
查看提交历史
- 查看提交历史:
git log
分支管理
创建和切换分支
-
创建新分支:
git branch <branch-name> -
切换到指定分支:
git checkout <branch-name>
合并分支
- 将指定分支合并到当前分支:
git merge <branch-name>
删除分支
- 删除指定分支:
git branch -d <branch-name>
远程仓库操作
添加远程仓库
- 添加远程仓库:
git remote add origin https://github.com/user/repo.git
推送到远程仓库
- 推送本地分支到远程仓库:
git push -u origin <branch-name>
从远程仓库拉取
- 从远程仓库拉取最新代码:
git pull origin <branch-name>
撤销操作
撤销工作目录的更改
- 撤销工作目录的更改:
git checkout -- <file>
撤销暂存区的更改
- 撤销暂存区的更改:
git reset <file>
撤销最近的提交
-
撤销最近的提交并保留更改:
git reset --soft HEAD~1 -
撤销最近的提交并丢弃更改:
git reset --hard HEAD~1
标签管理
创建标签
-
创建轻量级标签:
git tag <tag-name> -
创建带注解的标签:
git tag -a <tag-name> -m "tag message"
查看标签
- 查看所有标签:
git tag
推送标签到远程仓库
-
推送标签到远程仓库:
git push origin <tag-name> -
推送所有本地标签到远程仓库:
git push origin --tags
常见问题处理
解决合并冲突
- 当合并时出现冲突,Git 会停止合并过程,并让你手动解决冲突。
- 手动编辑冲突文件,解决所有冲突。
- 将解决后的文件添加到暂存区:
git add <resolved-file> - 完成合并:
git commit
结论
Git 是一个功能强大的版本控制系统,通过本教程的学习,你应该能够掌握 Git 的基本使用和一些高级功能。随着实践的深入,你将更加熟练地使用 Git 进行高效的版本控制。记得经常查阅 Git 的官方文档,以获取更多高级技巧和最佳实践。
相关文章:
Git 使用教程:从入门到精通
Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创建,用于有效、高速地处理从小到大的项目版本管理。本教程将带你从 Git 的安装开始,逐步学习到如何使用 Git 进行日常的版本控制操作。 安装 Git Windows 访问 Git 官方网站 下载 …...
ES查询的一些优化方式
ES查询的一些优化方式 filter和query Query会计算得分,filte不是, 整体上query会更耗时 字段方式: KEYWORD 和 text, Text检索的方式往往会占用更多性能,它往往需要伴随着模糊匹配和分词 分页的大小 From 和size的大小合理设置…...
计算左边(比自己小的元素)的最长距离
前言:一般做的题目都是使用单调栈来求出距离这个点最近的那个比这个数大或小的元素,但是如果是需要找到最远的那个元素呢?我们可以用到类似逆序对的思路,我们先进行排序从小到大,接着我们先处理左边,每次维…...
【C++算法】二分查找
二分查找 题目链接 二分查找https://leetcode.cn/problems/binary-search/ 算法原理 代码步骤 代码展示 class Solution { public:int search(vector<int>& nums, int target) {int left 0, right nums.size() - 1;while(left < right){// 防止溢出int mid …...
红日靶场通关
初始准备 首先是网络配置,看教程来的,我配置完的效果如下 windows7:(内:192.168.52.143 / 外:192.168.154.136) windows2003:(内:192.168.52.141)windows2008:(内:192.…...
用Python爬虫制作一个简易翻译器
我们通常是通过requestsBS4的方法来获取网页内容,这种方法导入模块较多,速度相对有点儿慢,此时我们可以用requests的post方法向指定服务器发送请求,获取数据后格式化为json,然后获取相关键值。这种方法用到了requests和…...
Shader Graph Create Node
一、Artistic 1、Adjustment 1)、Channel Mixer(通道混合) 根据权重对每个通道进行混合。 Contrast(对比度) 可调整对比度 调整对比度可以改变图像的鲜明度和层次感。增加对比度会使图像中的明暗差异更加显著,使图像看起来更加清晰、明亮;减少对比…...
共模干扰的形成和滤除
1、共模就是共同对地的干扰: 如图,我们可以看到共模的原理图。UPQ就是共模电压,ICM1 ICM2 就是共模电流。 ICM1 ICM2 大小不一定相同,方向相同。 2、共模信号和差模信号的区别: 通常电源线有三根线:火线L、…...
(计算机网络)运输层
一.运输层的作用 运输层:负责将数据统一的交给网络层 实质:进程在通信 TCP(有反馈)UDP(无反馈) 二.复用和分用 三. TCP和UDP的特点和区别 进程号--不是固定的 端口号固定--mysql--3306 端口--通信的终点 …...
基于深度学习的信号滤波:创新技术与应用挑战
一、引言 1.1 研究背景 随着科技的不断发展,信号处理领域面临着越来越复杂的挑战。在众多信号处理技术中,基于深度学习的信号滤波技术逐渐崭露头角,成为研究的热点。 基于深度学习的信号滤波在信号处理领域具有至关重要的地位。如今&#…...
MFC工控项目实例之十一板卡测试信号输入界面
承接专栏《MFC工控项目实例之十添加系统测试对话框》 相关代码 1、在BoardTest.h文件中添加代码 class CBoardTest : public CDialog { // Construction public:CBoardTest(CWnd* pParent NULL); // standard constructorCButtonST m_btnStart[16];CWinThread* pThread…...
sql中索引查看是否生效
在pg数据库中有多种索引存在,在一般情况下我们取使用普通索引 以下是一些常见导致索引未命中的原因和优化策略 1.如果查询中的条件与索引字段的顺序不匹配,或者索引字段没有完全包含在查询条件中,索引可能不会被使用。 2.在查询中使用函数…...
SpringBoot常见面试题
1.请说一说Spring Boot的自动装配原理? SpringBootApplication EnableAutoConfiguration AutoConfigurationImportSelector组件 SpringFactoriesLoader读取 (1)META-INF/spring.factories 或者 (2)org.springframework…...
springboot优雅停机无法关闭进程,kill无法停止springboot必须kill -9,springboot线程池使用
背景最近项目在jenkins部署的时候发现部署很慢,查看部署日志发现kill命令执行后应用pid还存在,导致必须在60秒等待期后kill -9杀死springboot进程 应用环境 springboot <dependency><groupId>org.springframework.boot</groupId>&l…...
【系统架构设计师-2015年真题】案例分析-答案及详解
更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【材料1】问题1问题2【材料2】问题1问题2问题3【材料3】问题1问题2问题3【材料4】问题1问题2问题3【材料5】问题1问题2问题3【材料1】 阅读以下关于软件架构评估的说明,在答题纸上回答问题1和问题2。 【说明】某软件…...
MongoDB设置系统服务启动教程
1、编辑mongodb.service文件 将MongoDB设置成系统服务,就可以通过systemctl进行启动停止重启,在目录/etc/systemd/system下编写mongodb.service文件: [Unit] DescriptionMongoDB Database Server Documentationhttps://www.mongodb.com/docs…...
mysql学习教程,从入门到精通,MySQL WHERE 子句(10)
1、SQL WHERE 子句 在本教程中,您将学习如何使用SQL从表中选择特定记录。 根据条件选择记录 在上一章中,我们学习了如何从表或表列中获取所有记录。但是,在现实世界中,我们通常只需要选择,更新或删除满足某些条件的那…...
设计模式】Listener模式和Visitor模式的区别
文章目录 前言一、介绍Listener模式Visitor模式 二、代码实现2.1 Listener模式的Java实现2.2Listener模式的Go实现2.3Visitor模式的Java实现2.4Visitor模式的Go实现 三、总结 前言 在软件设计中,设计模式是解决特定问题的通用解决方案。Listener模式和Visitor模式是…...
基于事件序列的数据获取
Data Get 31670 /S Update 2 AI_PC 3Mins /次 Import "Hggw" PI Data AABB020240908_115221_31781 AABB020240908_115521_31781 AABB020240908_115821_31781 1、From PIdata Copy 2 AI PC 2、AI PC UI Chart & Logic OK NG Pump:&#x…...
太速科技-基于XC7Z100+AD9361的双收双发无线电射频板卡
基于XC7Z100AD9361的双收双发无线电射频板卡 一、板卡概述 基于XC7Z100AD9361的双收双发无线电射频板卡是基于Xilinx ZYNQ FPGA和ADI的无线收发芯片AD9361开发的专用功能板卡,用于4G小基站,无线图传,数据收发等领域。 二、板卡…...
【esp-idf调试问题-代码为提前配置工程,配网wedsocket服务】
esp-idf调试问题-配网wedsocket服务一、提示分区表错误,没有配置自己的编写的分区表。menuconfig 配置分区表步骤 1:打开配置菜单 在项目根目录执行:步骤 2:选择分区表类型 在 Partition Table → Partition Table 中可选…...
Python程序员转战Mojo的最后1公里:自动转换工具mojoify上线首周已修复89%语法迁移阻塞点(限时开源)
第一章:Mojo与Python混合编程全景概览Mojo 是一种为 AI 系统量身打造的现代系统编程语言,兼具 Python 的易用性与 C/Rust 的执行效率。它原生兼容 Python 生态,允许开发者在同一个项目中无缝调用 Python 模块、复用 NumPy/Torch 接口…...
DiffBIR实战:用Stable Diffusion 2.1修复模糊老照片(附完整配置流程)
DiffBIR实战:用Stable Diffusion 2.1修复模糊老照片(附完整配置流程) 翻开泛黄的相册,那些承载着珍贵记忆的老照片往往因年代久远而变得模糊、褪色甚至破损。传统修复方法需要专业设计师耗费数小时手动修复,而如今&…...
群晖ARPL界面IP显示正常但Synology Assistant搜不到?试试这5个排查步骤
群晖ARPL界面IP显示正常但Synology Assistant搜不到的深度排查指南 当你兴奋地完成黑群晖的ARPL引导安装,在启动界面看到系统已经成功获取IP地址,却突然发现Synology Assistant工具死活搜不到这个IP时,那种从云端跌入谷底的感觉我太熟悉了。这…...
51单片机项目避坑实录:我的声光控灯为什么白天也亮?从硬件到代码的故障排查指南
51单片机声光控灯项目实战:从硬件选型到代码调试的深度避坑指南 深夜的实验室里,我盯着眼前这个不听话的声光控灯——明明窗外阳光明媚,它却固执地亮着。作为一名嵌入式开发新手,这个看似简单的51单片机项目让我踩遍了所有可能的坑…...
高效音频录制实战:如何为你的Web应用选择最佳编码方案
高效音频录制实战:如何为你的Web应用选择最佳编码方案 【免费下载链接】Recorder html5 js 录音 mp3 wav ogg webm amr g711a g711u 格式,支持pc和Android、iOS部分浏览器、Hybrid App(提供Android iOS App源码)、微信,…...
【并发心法】别用 volatile 骗自己了!撕碎裸机并发的伪安全,用 C++ Atomics 与内存屏障镇压“乱序执行”的底层叛乱
摘要:在嵌入式 C/C 开发中,99% 的工程师误以为 volatile 是解决中断与主循环并发冲突的万能解药。本文将无情揭露这一长达数十年的认知毒瘤。我们将带你深入现代编译器(GCC/Clang)的优化黑盒与 ARM Cortex 高级内核的流水线深处&a…...
Firecrawl MCP Server 在 Cursor 中的完美配置:10个实用技巧提升开发效率
Firecrawl MCP Server 在 Cursor 中的完美配置:10个实用技巧提升开发效率 【免费下载链接】firecrawl-mcp-server Official Firecrawl MCP Server - Adds powerful web scraping to Cursor, Claude and any other LLM clients. 项目地址: https://gitcode.com/gh_…...
Closure Library调试技巧:10个高效调试方法提升开发效率
Closure Library调试技巧:10个高效调试方法提升开发效率 【免费下载链接】closure-library Googles common JavaScript library 项目地址: https://gitcode.com/gh_mirrors/cl/closure-library Closure Library是Google开发的强大JavaScript库,提…...
BGP路由优化实战:加速收敛,提升网络稳定性
BGP路由优化实战:加速收敛,提升网络稳定性在复杂的网络环境中,尤其是在大规模数据中心或跨区域互联的网络中,BGP(Border Gateway Protocol)路由协议的性能直接影响着网络的可用性和用户体验。BGP 作为互联网…...
