文章总结: 本文是一篇Git版本控制工具的实战入门指南,详细介绍了Git的核心概念、安装配置、基础操作流程及常见问题解决方案。文章通过具体示例演示了从初始化仓库、提交代码到推送到远程仓库的完整步骤,并重点讲解了版本回退、分支管理等高级技巧,为开发者提供了实用的日常开发工作流和命令速查表。 综合评分: 82 文章分类: 安全开发,实战经验,技术标准
一篇文章掌握Git从入门到实战
原创
大表哥吆 大表哥吆
kali笔记
2026年5月20日 10:26 甘肃
在小说阅读器读本章
去阅读
作为新手而言,如何学习别人优秀的开源代码,如何提交自己的代码到开源社区,如何做到代码的版本控制。而今天通过这篇文章,让我们一起来学习吧!
一、什么是 Git?为什么需要版本控制?
Git 是一个分布式版本控制系统。简单说,它像一个「后悔药 + 时间机器」的组合,核心功能如下:
• 记录每次修改:谁、什么时候、改了什么。
• 随时回退:改坏了可以回到上一个正常版本
• 多人协作:各改各的,最后合并在一起
版本控制 vs 普通文件管理
| 场景 | 普通文件管理 | Git 版本控制 |
| — | — | — |
| 改坏了 | 文件已保存,无法恢复 | git revert 一键回退 |
| 想看看上周改了啥 | 凭记忆 | git log 清清楚楚 |
| 想同时尝试两个方案 | 复制粘贴多个文件夹 | git branch 开分支 |
| 几台电脑同步代码 | U 盘拷来拷去 | git push/pull 同步 |
二、Git 与 Github 的关系
Git 是本地的版本管理工具,可自行安装。而Github是远程代码托管平台(像自己的 GitHub)。说白了一个是本地环境,仅自己看,一个是线上版本,可开源可私有。
总体流程: 你本地写完代码 → Git 管理版本 → 推送到 Gitea 备份和共享
三、Git 的安装与首次配置
3.1 下载安装
Windows: 官网 https://git-scm.com 下载安装包,一路 Next
验证安装:
git --version
3.2 配置用户名和邮箱(初始化)
git config --global user.name "逍遥子大表哥"
git config --global user.email "你的邮箱@example.com"
四、实战 推送你的第一个项目
接下来我们需要将 D:\ADRUINO 中的项目提交到Github。
步骤 1:进入项目目录
cd D:\ADRUINO
步骤 2:初始化仓库
git init
这会在当前目录生成一个 .git 隐藏文件夹,Git 用它来管理版本。
步骤 3:创建主分支
git checkout -b main
🔔 注意: 新版的 Git 默认分支名叫
main,不是以前的master。
步骤 4:添加文件到暂存区
git add README.md # 只添加 README.md
# 或
git add . # 添加当前目录所有文件(除了 .gitignore 忽略的)
步骤 5:提交到本地仓库
git commit -m "first commit"
双引号里写本次改动的描述,清晰明了即可。
步骤 6:关联远程仓库
先去 github 上新建一个空仓库,拿到仓库地址:
https://github.com/xiaoyoazi/Arduino.git
然后关联到本地:
git remote add origin https://github.com/xiaoyoazi/Arduino.git
origin是远程仓库的默认名字,你可以改成任何名字,但大家都用origin所以最好保持一致。
步骤 7:推送到远程
git push -u origin main
-u 表示第一次推送时建立关联,以后可以直接 git push。
五、踩坑记录 💥
远程仓库名不是 origin 怎么办?
情景: 推送项目提示错误:
git push origin master
# ❌ fatal: 'origin' does not appear to be a git repository
原因: 你的远程仓库名不是默认的 origin,执行下面命令查看当前仓库名。
git remote -v
# 逍遥子 https://github.com/xiaoyoazi/Arduino.git (fetch)
# 逍遥子 https://github.com/xiaoyoazi/Arduino.git (push)
解决方案: 改名或者用原名推送
# 方案一:用原名推送
git push 逍遥子 master
# 方案二:改成标准名字(推荐)
git remote rename 逍遥子 origin
git push origin master
教训:git remote add 时名字别乱取,用 origin 最省心。
分支错误
情景: 推送项目后,提示下面错:
git push origin master
# ❌ error: src refspec master does not match any
原因: 本地的分支叫 main,不是 master。
git branch
# * main
解决方案: 推正确的分支:
git push origin main
或者把本地分支改名推:
git branch -M master # 把 main 改成 master
git push origin master
教训: 推送前先用 git branch 看看本地到底叫什么分支名。
第一次提交忘记 commit 就 push
情景: 新建了仓库,想直接推送:
git push -u origin main
# ❌ error: failed to push some refs
原因: 还没有任何 commit。Git 推的是提交记录,空仓库没有提交就没有分支。
正确顺序:
git init
git checkout -b main # 创建 main 分支
git add . # 添加文件
git commit -m "first commit" # 先提交
git remote add origin <地址> # 再关联远程
git push -u origin main # 最后推送
六、日常开发工作流
6.1 修改代码后提交
# 1. 看看改了什么
git status
# 2. 添加修改
git add .
# 3. 提交
git commit -m "修复:文章页面XSS过滤"
# 4. 推送到Gitea
git push
6.2 建议的提交信息格式
<类型>:<简短描述>
类型:
feat - 新功能
fix - 修复bug
docs - 文档修改
refactor - 重构代码
style - 格式调整(不影响功能)
举例:
fix: 修复登录页SQL注入漏洞
feat: 新增MQTT消息队列功能
docs: 更新README安装说明
七、版本回退(最核心的能力)
这是版本控制最大的价值——改坏了能回去。
7.1 先看提交历史
git log --oneline
# abc1234 (HEAD -> main) 修复:文章页面XSS过滤
# def5678 新增:用户登录功能
# ghi9012 初始提交
abc1234 是 commit ID(哈希值),每个提交的唯一标识。
7.2 场景一:刚提交还没推送
# 撤销最近一次提交,但保留代码修改
git reset --soft HEAD~1
# 彻底回到上一版本(丢弃所有修改)
git reset --hard HEAD~1
7.3 场景二:已经推送到 Gitea
✅ 安全方案:git revert
# 撤销最近一次提交,生成一个新的反向提交
git revert HEAD
git push
# 撤销某次指定的提交(比如那个XSS修复)
git revert abc1234
git push
优点: 不修改历史记录,多人协作时不会搞乱别人。
❌ 暴力方案:git reset + force push
git reset --hard HEAD~1
git push origin main --force
⚠️ 慎用! 强制推送会改写远程历史,如果别人已经拉取了你的代码,他们的仓库会出问题。
7.4 revert vs reset 怎么选?
| 场景 | 推荐方案 |
| — | — |
| 只有你自己在用这个仓库 | 随便,看心情 |
| 多人协作开发 | 必须用 git revert |
| 刚提交 5 分钟还没推远程 | git reset --soft HEAD~1 |
| 已经推远程了 | 用 git revert |
| 就想彻底删除某个提交的所有痕迹 | git reset --hard + --force |
八、几个实用小技巧
查看某个版本改了啥
git show abc1234
只看文件修改列表
git show --stat abc1234
撤销某个文件的修改(还没 add)
git checkout -- src/main.py
只想撤销某个文件的提交(已经 add)
git reset HEAD src/main.py
九、常用命令速查表
| 命令 | 作用 |
| — | — |
| git init | 初始化仓库 |
| git status | 查看当前状态 |
| git add . | 添加所有修改 |
| git commit -m "描述" | 提交修改 |
| git push | 推送到远程 |
| git pull | 拉取远程更新 |
| git log --oneline | 查看提交历史 |
| git branch | 查看分支 |
| git checkout -b <分支名> | 创建并切换分支 |
| git revert HEAD | 安全回退最近一次提交 |
| git reset --soft HEAD~1 | 撤销提交,保留修改 |
| git reset --hard HEAD~1 | 彻底回到上一版本 |
| git remote -v | 查看远程仓库地址 |
| git remote add origin <地址> | 关联远程仓库 |
更多精彩文章 欢迎关注我们
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:kali笔记 大表哥吆 大表哥吆《一篇文章掌握Git从入门到实战》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论