自从学会Git,感觉打开了一扇新大门
“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。
为什么 Git 能成为程序员的标配工具?它究竟打开了怎样一扇“大门”?
从自由职业者到大厂团队,Git 已成为代码管理的行业标准。无论是初创团队,还是拥有数百开发者的企业,Git 都在无形中提升了开发效率,成为推动科技发展的幕后英雄。
Git 的核心魅力
-
版本控制,让历史可追溯
- 还记得重构后无法回滚的日子吗?Git 的分支功能,帮你保留每一个阶段的代码历史。
-
多人协作,团队效率倍增
- 再也不用担心文件命名如“final_v2.1_last_final.docx”这样的混乱场景,Git 的 pull 和 merge 让团队协作如丝般顺滑。
-
分支管理,开发测试两不误
- 新功能开发、BUG 修复可以独立在分支中进行,确保主分支稳定。
Git 是目前最流行的分布式版本控制系统,被广泛应用于软件开发项目中 它提供了许多命令和功能,可以帮助开发者有效地管理代码。本文将介绍Git的常见命令及其用法,帮助你快速上手并提升代码管理的效率
1. 初始化与配置
-
git init:
初始化一个新的Git仓库。
-
git config:
配置Git的全局或局部设置,如用户名、邮箱等。
2. 代码管理
-
git add:
将修改的文件添加到暂存区。
-
git commit:
将暂存区的文件提交到本地仓库。
-
git status:
查看当前代码状态,包括已修改、已暂存等。
-
git diff:
查看文件在工作区与暂存区或本地仓库的差异。
3. 分支操作
-
git branch:
查看、创建或删除分支。
-
git checkout:
切换分支或恢复文件到上一个版本。
-
git merge:
合并分支。
-
git rebase:
将一个分支的提交应用到另一个分支上。
4. 远程仓库
-
git remote:
管理远程仓库的操作,如添加、删除、重命名远程仓库。
-
git clone:
克隆远程仓库到本地。
-
git pull:
拉取远程仓库的最新代码。
-
git push:
推送本地代码到远程仓库。
5. 撤销与回退
-
git revert:
撤销某个提交并生成一个新的提交。
-
git reset:
回退到指定的提交或重置暂存区与工作区。
-
git stash:
暂存当前的修改,以便切换分支或恢复。
6. 历史记录
-
git log:
查看提交历史记录。
-
git blame:
显示文件每一行的修改信息。
-
git show:
查看某个提交的详细信息。
7. 标签管理
-
git tag:
管理标签,如创建、查看、删除标签。
-
git push --tags:
推送本地标签到远程仓库。
8. 忽略文件与配置文件
-
.gitignore:
配置忽略某些文件或目录。
-
.gitattributes:
配置文件属性,如文件换行符、二进制文件等。
9. 远程仓库管理
-
git remote add <remote-name> <remote-url>:
添加一个新的远程仓库。
-
git remote -v:
查看当前配置的所有远程仓库。
-
git fetch <remote-name>:
从远程仓库获取最新的代码,但不合并到当前分支。
-
git remote show <remote-name>:
查看远程仓库的详细信息。
10. 撤销与修改
-
git checkout – <file-name>:
丢弃工作区的修改,恢复到最近一次提交的状态。
-
git reset HEAD <file-name>:
取消暂存文件,将文件从暂存区移回到工作区。
-
git commit --amend:
修改最后一次提交的消息或内容。
11. 版本比较和提交历史
-
git diff <commit1> <commit2>:
比较两个提交之间的差异。
-
git log --oneline:
以简洁的方式显示提交历史记录。
-
git show <commit>:
查看指定提交的详细信息,包括修改的文件和内容变动。
12. 合并与解决冲突
-
git merge <branch-name>:
将指定分支的修改合并到当前分支。
-
git mergetool:
使用可视化工具解决合并冲突。
-
git diff --check:
查找潜在的合并冲突。
13. 分支管理
-
git branch -d <branch-name>:
删除指定的本地分支。
-
git branch -m <old-branch-name> <new-branch-name>:
重命名本地分支。
-
git branch -a:
查看所有本地和远程分支。
14. 撤销提交
-
git revert <commit>:
创建一个新的提交,撤销指定的提交内容。
-
git reset <commit>:
将分支指针移动到指定的提交,丢弃该提交之后的提交历史。
15. 子模块管理
-
git submodule add <repository-url> :
将一个仓库作为子模块添加到当前仓库中。
-
git submodule update --init --recursive:
初始化并更新子模块。
-
git submodule foreach <command>:
为每个子模块执行指定的命令。
16. 远程操作
-
git push <remote-name> <branch-name>:
将本地分支的提交推送到远程仓库。
-
git pull <remote-name> <branch-name>:
从远程仓库获取更新并合并到当前分支。
-
git clone <repository-url> :
克隆远程仓库到本地。
17. 其他常用命令
-
git stash:
将当前的未提交修改保存到堆栈中,方便切换分支或者储存临时修改。
-
git cherry-pick <commit>:
选择一个或多个提交,将其应用到当前分支中。
-
git clean -n:
列出将要被删除的未被跟踪的文件和目录。
-
git blame <file-name>:
逐行显示指定文件的修改历史和作者信息。
这只是一部分Git命令的示例,Git拥有丰富的功能和命令,可根据需要进行深入学习和使用。
掌握 Git,不只是学会了一门工具,而是拥有了驾驭代码的能力。它让你从手忙脚乱到有条不紊,打开了现代开发的大门。
“Git 之于开发者,就像画笔之于艺术家,工具虽小,却承载了无限可能。”
相关文章:

自从学会Git,感觉打开了一扇新大门
“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具?它究…...

Ansys Discovery 中的网格划分方法:探索模式
本篇博客文章将介绍 Ansys Discovery 中可用于在探索模式下进行分析的网格划分方法。我们将在下一篇博客中介绍 Refine 模式下的网格划分技术。 了解 Discovery Explore 模式下的网格划分 网格划分是将几何模型划分为小单元以模拟系统在不同条件下的行为的过程。这是通过创建…...

关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题
关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题,首先需要理解这两者旋转的本质区别及其资源开销。 AWTK的屏幕旋转: AWTK旋转的实现方式: AWTK 是一个用户界面工具包,它通过图形渲染系统处理所有控件和窗口的旋转。当你使用 w…...

grouped.get_group((‘B‘, ‘A‘))选择分组
1. df.groupby([team, df.name.str[0]]) df.groupby([team, df.name.str[0]]) 这一部分代码表示对 DataFrame df 按照 两个条件 进行分组: 按照 team 列(即团队)。按照 name 列的 首字母(df.name.str[0])。 df.name.s…...

HTML——66.单选框
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>单选框</title></head><body><!--input元素的type属性:(必须要有)--> <!--单选框:(如所住省会,性别选择&…...
Couchbase 和数据湖技术的区别、联系和相关性分析
Couchbase 和数据湖技术(如 Delta Lake、Apache Hudi、Apache Iceberg)分别是两类不同的数据存储与管理系统,但它们也可以在特定场景中结合使用,以下是它们的区别、联系和相关性分析: 区别: 1. 核心用途&a…...
springboot3 性能优化
Spring Boot 3 是基于 Spring Framework 6 的最新版本,支持 Java 17,并引入了多项改进,包括原生镜像支持、性能提升和现代化开发支持。以下是对 Spring Boot 3 应用进行全面优化的详细步骤: 一、开发环境优化 1. 使用最新版本 确保依赖版本为最新: Spring Boot 3.x。 J…...
C++之运算符重载详解篇
1.概念 重载概念: C 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。 运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 这里主要介绍…...
深度学习应用工程化中的节能减排最佳实践
文章大纲 简介为什么要在制造业节能减排能耗估算显卡能耗CPU 能耗树莓派能耗加速卡能耗硬件层面的改进边缘端硬件简介树莓派 + 加速卡软件层面的改进检测逻辑的改进算法层面改进深度学习模型训练,推理,量化的优化外网参考参考文献简介 为什么要在制造业节能减排 一、制造业…...

电脑文件msvcp110.d丢失的解决方法
电脑运行故障全解析:从文件丢失到系统报错,打造无忧使用环境 在数字化浪潮中,电脑作为我们工作、学习和娱乐的得力助手,其稳定运行至关重要。然而,在实际使用过程中,我们难免会遇到各种各样的问题…...
xdoj isbn号码
ISBN 号码 问题描述 每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符,其规定格式如"x-xxx-xxxxx-x", 其中符号“-”是分隔符(键盘上的减号),最…...
qt的utc时间转本地时间
代码如下: #include <QCoreApplication> #include <QDateTime> #include <QDebug>int main(int argc...

mariadb变更数据存放目录
1、停止mariadb服务 # systemctl stop maraidb.server 2、创建数据目录 # mkdir /opt/mysql # chown -R mysql:mysql /opt/mysql 3、配置mariadb 3.1 配置文件说明 # cd /etc/mysql/ && ls -l my.cnf为主配置文件,其他的为子配置,同时配置…...

分布式专题(11)之Zookeeper特性与节点数据类型详解
一、Zookeeper数据结构 Zookeeper数据模型与结构与Unix文件系统很类似,整体上可以看做是一棵树,每个节点称做一个ZNode。 Zookeeper的数据模型是层次模型,层次模型常见于文件系统 。层次模型和Key-Value模型是两种主流的数据模型,…...

Java项目实战II基于小程序的驾校管理系统(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着汽车保有量的不断增长,驾驶培训市场日…...

Unity Pico 应用失去焦点后,追踪功能被禁用(原生 UI 界面弹出)
在 Unity 中,如果正在使用新的输入系统,任何触发 OnApplicationFocus(false) 的事件都可能会禁用追踪功能。 负责此功能的组件是附加到主摄像机的 "Tracked Pose Driver (Input System)" 组件。由于非输入系统版本不是新输入系统的一部分&…...

第十四届蓝桥杯Scratch省赛中级组—智能计价器
智能计价器 背景信息: A城市的出租车计价:3公里以内13元,基本单价每公里2.3元(超过3公里的部分,不满1公里按照1公里收费),燃油附加费每运次1元。 例如: 3.2公里的打车费用:132.3…...
AWS S3文件存储工具类
pom依赖 <!--aws-s3--> <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>1.12.95</version></dependency>S3Utils import cn.hutool.core.util.ZipUtil; import com.a…...

【leetcode100】二叉树的中序遍历
1、题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2] 2、初始思路 2.1 思路 中序遍历的顺序是左→根→右,定义一个函数进行遍历 # Definition for …...
开源GTKSystem.Windows.Forms框架:C# Winform跨平台运行深度解析
开源GTKSystem.Windows.Forms框架:C# Winform跨平台运行深度解析 一、跨平台框架的崛起 1.1 跨平台技术的现状与需求 在当今快速发展的科技时代,软件开发的需求日益多样化。随着移动设备和操作系统的不断涌现,开发者面临着前所未有的挑战&…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...