一篇文章掌握Git从入门到实战

admin 2026-05-23 04:55:35 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文是一篇Git版本控制工具的实战入门指南,详细介绍了Git的核心概念、安装配置、基础操作流程及常见问题解决方案。文章通过具体示例演示了从初始化仓库、提交代码到推送到远程仓库的完整步骤,并重点讲解了版本回退、分支管理等高级技巧,为开发者提供了实用的日常开发工作流和命令速查表。 综合评分: 82 文章分类: 安全开发,实战经验,技术标准


cover_image

一篇文章掌握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&nbsp;remote add&nbsp;origin&nbsp;<地址>&nbsp; &nbsp;# 再关联远程
git&nbsp;push -u&nbsp;origin&nbsp;main&nbsp; &nbsp; &nbsp; &nbsp;# 最后推送

六、日常开发工作流

6.1 修改代码后提交

# 1. 看看改了什么
git&nbsp;status
# 2. 添加修改
git&nbsp;add .
# 3. 提交
git&nbsp;commit&nbsp;-m&nbsp;"修复:文章页面XSS过滤"
# 4. 推送到Gitea
git&nbsp;push

6.2 建议的提交信息格式

<类型>:<简短描述>
类型:
&nbsp; feat &nbsp; &nbsp;- 新功能
&nbsp; fix &nbsp; &nbsp; - 修复bug
&nbsp; docs &nbsp; &nbsp;- 文档修改
&nbsp; refactor - 重构代码
&nbsp; style &nbsp; - 格式调整(不影响功能)
举例:
&nbsp; fix: 修复登录页SQL注入漏洞
&nbsp; feat: 新增MQTT消息队列功能
&nbsp; docs: 更新README安装说明

七、版本回退(最核心的能力)

这是版本控制最大的价值——改坏了能回去

7.1 先看提交历史

git&nbsp;log&nbsp;--oneline
# abc1234 (HEAD -> main) 修复:文章页面XSS过滤
# def5678 新增:用户登录功能
# ghi9012 初始提交

abc1234 是 commit ID(哈希值),每个提交的唯一标识。

7.2 场景一:刚提交还没推送

# 撤销最近一次提交,但保留代码修改
git&nbsp;reset --soft HEAD~1
# 彻底回到上一版本(丢弃所有修改)
git&nbsp;reset --hard HEAD~1

7.3 场景二:已经推送到 Gitea

✅ 安全方案:git revert

# 撤销最近一次提交,生成一个新的反向提交
git&nbsp;revert HEAD
git&nbsp;push
# 撤销某次指定的提交(比如那个XSS修复)
git&nbsp;revert abc1234
git&nbsp;push

优点: 不修改历史记录,多人协作时不会搞乱别人。

❌ 暴力方案:git reset + force push

git&nbsp;reset --hard HEAD~1
git&nbsp;push origin main&nbsp;--force

⚠️ 慎用! 强制推送会改写远程历史,如果别人已经拉取了你的代码,他们的仓库会出问题。

7.4 revert vs reset 怎么选?

| 场景 | 推荐方案 | | — | — | | 只有你自己在用这个仓库 | 随便,看心情 | | 多人协作开发 | 必须用 git revert | | 刚提交 5 分钟还没推远程 | git reset --soft HEAD~1 | | 已经推远程了 | 用 git revert | | 就想彻底删除某个提交的所有痕迹 | git reset --hard--force |

八、几个实用小技巧

查看某个版本改了啥

git&nbsp;show&nbsp;abc1234

只看文件修改列表

git&nbsp;show --stat&nbsp;abc1234

撤销某个文件的修改(还没 add)

git&nbsp;checkout -- src/main.py

只想撤销某个文件的提交(已经 add)

git&nbsp;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从入门到实战》

我的训练营被盗版了 网络安全文章

我的训练营被盗版了

文章总结: 作者CppGuide称其训练营内容被盗版,批评平台监管不力。同时宣传正在进行的AI远控训练营已完成界面设计,将带领学员实现产品化。因考虑经济环境因素
评论:0   参与:  0