1. Git 基础概念与工作流程Git 作为目前最流行的分布式版本控制系统已经成为开发者日常工作中不可或缺的工具。对于刚接触 Git 的新手来说掌握其基本概念和工作流程是第一步。1.1 Git 的核心区域Git 的工作流程主要涉及三个核心区域工作区Working Directory这是你在本地计算机上直接操作的文件目录所有文件的修改、新增和删除都在这里进行。工作区的文件状态可能是未跟踪Untracked新创建的文件Git 尚未开始管理已修改Modified已被 Git 管理的文件发生了更改暂存区Staging Area也称为索引Index是一个中间区域用于准备下一次提交的内容。通过git add命令可以将工作区的更改添加到暂存区。本地仓库Local Repository保存项目完整历史和元数据的数据库位于项目根目录的 .git 文件夹中。通过git commit命令可以将暂存区的内容永久保存到本地仓库。1.2 基本工作流程一个典型的 Git 工作流程如下在工作区修改文件将想要提交的更改添加到暂存区git add将暂存区的内容提交到本地仓库git commit将本地仓库的更改推送到远程仓库git push提示养成小步提交的习惯每次提交只包含一个逻辑更改这样更容易追踪和管理代码变更历史。2. 常用 Git 命令详解2.1 仓库初始化与克隆2.1.1 初始化新仓库git init这个命令会在当前目录创建一个新的 Git 仓库生成一个隐藏的 .git 目录其中包含所有必要的仓库文件。2.1.2 克隆现有仓库git clone repository-url克隆命令会下载远程仓库的所有历史记录和文件到本地。例如git clone https://github.com/user/repo.git克隆时可以指定本地目录名称git clone https://github.com/user/repo.git my-project2.2 文件状态与更改管理2.2.1 查看状态git status这个命令会显示哪些文件被修改但未暂存哪些文件已暂存准备提交哪些文件未被跟踪使用-s参数可以获得简洁的输出git status -s2.2.2 添加文件到暂存区添加单个文件git add filename添加所有更改包括新文件git add .只添加已跟踪文件的更改不包括新文件git add -u2.2.3 比较差异比较工作区与暂存区的差异git diff比较暂存区与最新提交的差异git diff --cached比较工作区与最新提交的差异git diff HEAD2.3 提交更改基本提交命令git commit -m 提交信息如果想修改最后一次提交比如忘记添加某些文件或修改提交信息git commit --amend这个命令会打开编辑器让你修改提交信息同时将暂存区的新更改合并到上次提交中。注意amend 会重写提交历史只适用于尚未推送到远程仓库的提交。2.4 分支管理2.4.1 查看分支查看本地分支git branch查看所有分支包括远程git branch -a2.4.2 创建与切换分支创建新分支git branch new-branch切换分支git checkout branch-name创建并立即切换到新分支git checkout -b new-branch2.4.3 合并分支将指定分支合并到当前分支git merge branch-name遇到冲突时需要手动解决冲突文件然后标记为已解决git add conflicted-file git commit2.4.4 删除分支删除已合并的分支git branch -d branch-name强制删除未合并的分支git branch -D branch-name2.5 远程仓库操作2.5.1 查看远程仓库git remote -v2.5.2 添加远程仓库git remote add origin repository-url2.5.3 推送更改将当前分支推送到远程仓库git push origin branch-name设置上游分支后可以简化推送命令git push -u origin branch-name # 之后只需要输入 git push2.5.4 拉取更新从远程仓库获取更新并合并git pull相当于git fetch git merge如果只想获取更新而不自动合并git fetch2.6 撤销操作2.6.1 撤销工作区修改撤销对某个文件的修改git checkout -- filename2.6.2 撤销暂存区的修改将文件从暂存区移回工作区git reset HEAD filename2.6.3 回退提交回退到指定提交git reset --hard commit-hash软回退保留更改在工作区git reset --soft commit-hash混合回退保留更改在暂存区git reset commit-hash2.6.4 恢复删除的分支通过 reflog 找到分支最后的提交哈希然后重建分支git reflog git checkout -b branch-name commit-hash3. 高级技巧与最佳实践3.1 储藏Stash临时更改当需要切换分支但当前工作未完成时可以储藏临时更改git stash查看储藏列表git stash list恢复最近的储藏git stash apply恢复指定储藏git stash apply stash{n}删除储藏git stash drop stash{n}恢复并删除储藏git stash pop3.2 标签管理创建轻量标签git tag v1.0创建附注标签git tag -a v1.0 -m 版本1.0发布查看标签git tag推送标签到远程git push origin v1.0推送所有标签git push origin --tags3.3 子模块管理添加子模块git submodule add repository-url path初始化子模块git submodule init更新子模块git submodule update3.4 配置别名可以设置命令别名提高效率git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status设置后就可以使用简写git co branch-name git br git ci -m message git st3.5 忽略文件创建 .gitignore 文件指定需要忽略的文件和目录# 忽略所有 .log 文件 *.log # 忽略 node_modules 目录 node_modules/ # 不忽略重要的.log文件 !important.log4. 常见问题与解决方案4.1 提交了错误的文件如果错误提交了文件但尚未推送修改 .gitignore 添加应忽略的文件从仓库中删除文件但保留本地副本git rm --cached filename重新提交4.2 撤销已推送的提交如果需要撤销已推送到远程的提交本地回退到正确版本git reset --hard commit-hash强制推送到远程git push -f origin branch-name警告强制推送会重写历史确保团队其他成员知道这个操作。4.3 解决合并冲突当合并产生冲突时打开冲突文件Git 会用标记标识冲突部分 HEAD 本地更改 远程更改 branch-name手动编辑文件解决冲突标记冲突已解决git add filename完成合并git commit4.4 找回丢失的提交通过 reflog 查找丢失的提交git reflog找到提交哈希后git checkout -b new-branch commit-hash4.5 清理仓库删除未跟踪的文件git clean -n # 预览将被删除的文件 git clean -f # 实际删除文件删除未跟踪的目录git clean -fd5. Git 图形化工具推荐虽然命令行是使用 Git 最强大的方式但图形界面工具可以提供更直观的操作体验GitKraken功能强大的跨平台 Git 客户端SourcetreeAtlassian 提供的免费 Git 客户端GitHub DesktopGitHub 官方推出的简化版客户端VS Code Git 集成编辑器内置的 Git 功能对于初学者建议先掌握命令行操作再根据需要选择合适的图形工具辅助日常工作。
企业数字化 ERP 产品动态
相关推荐
Git核心概念与高效工作流实战指南 1. Git 核心概念与工作流程 Git 作为分布式版本控制系统,其核心设计理念是高效管理代码变更历史。与集中式版本控制系统不同,Git 的每个工作目录都包含完整的版本库,这使得开发者可以离线工作,后续再同步变更。
1.1 Git 三大区域… · 2026/11/11 23:00:34
ARM Compiler 5.05 Build 169:嵌入式旧项目ABI兼容性指南 简介:ARM Compiler v5.05, Build 169 是 ARM 官方发布的编译器更新版本,专为已持有 ARM Compiler 5 授权的嵌入式开发人员设计,适用于基于 ARM 架构的裸机或 RTOS 环境下的 C/C 代码编译与优化,不兼容 DS-5 集成环境。资源包共含 … · 2026/11/6 6:44:34
科研绘图AI化:从代码到顶刊级可视化的智能解决方案 1. 科研绘图现状与痛点分析在学术研究领域,数据可视化质量直接影响论文的传播效果和评审印象。传统科研绘图存在三大典型问题:技术门槛高:使用Python的Matplotlib或R的ggplot2需要编写数十行代码调整样式,而Adobe Illustrator等专… · 2026/11/5 17:33:35
未央区在哪办电工证官方回应来啦,别再被中介坑了 未央区在哪办电工证官方回应来啦,别再被中介坑了 你是不是也在为【未央区在哪办电工证】这个问题发愁?怕跑错地方、怕被中介骗钱、怕报名了又退不了费?别急,这篇文章会告诉你 官方回应 在哪里,也告诉你怎么避开那些坑,顺利拿到电工证。… · 2026/11/13 1:03:01
芯片电工证办理过期了怎么办?2026河南最新政策全解析 芯片电工证办理过期了怎么办?2026河南最新政策全解析 证书过期了不知道怎么复审延期?芯片电工证办理在2026年河南迎来重大政策调整,很多人因为不了解新规定,导致证件失效却不知如何处理。本文从南阳卧龙区初次报考人员角度出发,结合最新政策和实… · 2026/11/13 1:03:01
电工证需要有钢印吗?怎么报名不花冤枉钱 电工证需要有钢印吗?怎么报名不花冤枉钱 怕考不过白交培训费?你不是一个人,电工证是很多建筑工人心中的一道坎。尤其是像商丘这样的地方,很多建筑工人想通过考证提高收入,但一听说要花钱、要考试、还要年审,就犹豫不前。今天我就从实操角度,讲讲电工证… · 2026/11/13 1:03:01
电工在工地太忙没时间复习?考消防电工证也能拿电子证书 电工在工地太忙没时间复习?考消防电工证也能拿电子证书 工地太忙根本没时间复习考试,你是不是也遇到过这种情况?每天在工地上忙得脚不沾地,连吃饭都得抢时间,更别提抽出时间来准备考试了。现在很多人为了能顺利上岗,都开始考消防电工证,但这个证到底是… · 2026/11/13 1:03:01
谁要租电工证?2026河南最新政策下,这些事必须知道! 谁要租电工证?2026河南最新政策下,这些事必须知道! 你是不是也遇到过这样的情况?工地上的活儿急着上手,可就是缺个电工证,临时找人租证上岗,结果被中介坑了钱还拿不到证?别急,2026河南最新政策已经明确,特种作业操作证是硬性门槛,… · 2026/11/13 1:02:01
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/12 14:09:01
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/11 19:07:25
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/12 23:27:43
维修电公用考电工证吗 在哪考最靠谱 维修电公用考电工证吗 在哪考最靠谱 工地太忙根本没时间复习考试,你是维修电工,天天在项目上跑,连抽个空背个题都难。那问题来了—— 维修电公用考电工证吗 ?答案是: 必须考 。尤其是在当前施工行业,没有电工证,连进场都可能被拦下。而且,… · 2026/11/13 0:00:08
电工证是不是可以登高?含金量和证书范围你必须知道的事 电工证是不是可以登高?含金量和证书范围你必须知道的事 证书过期了不知道怎么复审延期,这事儿很多人遇到过,尤其是像你这样在郑州金水区做劳务班组负责人,手里握着几十个工人的证书,稍微一疏忽,就可能影响工程进度和公司信誉。特别是电工证是不是可以登… · 2026/11/13 0:00:08
鸡西电工证哪家下证快官方报名入口怎么找 鸡西电工证哪家下证快官方报名入口怎么找 你是不是也担心 学历不高怕报不上名 ?别急,今天我就来跟你说说, 鸡西电工证哪家下证快 ,还有 官方报名入口 到底怎么找,别让那些“代办”“代考”耽误了你的机会。… · 2026/11/13 0:00:08
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 4:35:34
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 4:36:01
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 21:15:21