当前位置: 首页 > news >正文

git的使用教程

📘 Git 从入门到日常使用 · 详细学习笔记

1. 什么是 Git?

  • Git 是一个版本控制系统:它能记录你对文件的所有修改历史,就像游戏的“存档”一样,随时可以回到之前的某个状态。

  • 为什么用它:多人协作、备份代码、追踪修改、实验新功能而不破坏原有代码。

  • 核心概念

    • 仓库(Repository):你的项目文件夹 + 所有历史记录的总称。

    • 提交(Commit):一次“存档”,记录某一时刻所有文件的状态。

    • 分支(Branch):独立开发线,让你在不影响主代码的情况下工作。

2. Git 安装与配置

2.1 安装 Git

  • Windows:从 Git官网 下载安装,一路“下一步”即可。安装后会有Git Bash终端。

  • macOSbrew install git或下载安装包。

  • Linux (Ubuntu/Debian)sudo apt install git

验证安装成功:打开终端(或 Git Bash),输入:

git --version

2.2 初次配置(必须)

告诉 Git 你的身份,这样每次提交都会记录是谁做的:

git config --global user.name "你的昵称" git config --global user.email "你的邮箱"

查看已有配置:

git config --list

💡--global表示全局配置,这台电脑上所有仓库都生效。如果某个仓库想要不同身份,去掉--global在仓库内单独设置。

3. Git 基础操作(核心流程)

让我们从零创建一个仓库,学习最常用的几个命令。

3.1 创建仓库(初始化)

进入你的项目文件夹,执行:

git init

此时该文件夹下会多出一个隐藏的.git目录,它就是 Git 的“数据库”,不要乱动它

3.2 查看状态

随时查看当前仓库的文件状态:

git status

会告诉你哪些文件被修改、哪些文件还没有被 Git 跟踪。

3.3 添加文件到暂存区(Stage)

Git 提交分两步:先add到“暂存区”,再commit永久保存。

git add 文件名 # 添加单个文件 git add . # 添加当前目录所有新文件/修改的文件 git add *.txt # 添加所有txt文件

3.4 提交(创建存档)

git commit -m "这里写本次修改的说明"

例如:git commit -m "完成了用户登录功能"

🧠 理解:add像把文件放进“购物车”,commit像“下单确认”,只有 commit 后才会生成一个历史版本。

3.5 查看提交历史

git log # 完整历史 git log --oneline # 简洁一行显示

q退出日志查看。

3.6 查看修改内容(工作区 vs 暂存区)

git diff # 工作区与暂存区的差异 git diff --staged # 暂存区与上一次提交的差异

4. 撤销与回退(放心改错)

4.1 撤销工作区的修改(还没 add)

git checkout -- 文件名 # 还原成最近一次 commit 或 add 的样子

4.2 撤销暂存区的修改(已经 add,但没 commit)

git restore --staged 文件名 # 把文件移出暂存区,工作区修改保留

4.3 修改最后一次提交(还没 push)

git commit --amend -m "新的提交说明"

可以修改提交信息,或者忘记添加某个文件时用。

4.4 回退到某个历史版本

git log --oneline # 找到目标 commit 的 id(比如 a1b2c3d) git reset --hard a1b2c3d # 工作区、暂存区、版本库都回到那个版本

⚠️ 注意:reset --hard会丢弃之后的所有修改,谨慎使用。如果想保留修改,可以用git reset --soft

5. 分支(Branch)—— 并行开发的利器

5.1 什么是分支?

  • 主分支通常叫mastermain

  • 你可以创建新分支(比如feature-login)独立开发,完成后合并回主分支。

  • 分支切换非常快,是 Git 的核心优势。

5.2 基本分支操作

bash

git branch # 列出本地分支(* 表示当前分支) git branch 新分支名 # 创建分支 git checkout 分支名 # 切换分支 git checkout -b 新分支名 # 创建并切换到新分支 git branch -d 分支名 # 删除分支(已合并)

5.3 合并分支

假设你在feature-login上完成了工作,想合并到master

bash

git checkout master # 先切换到目标分支(主分支) git merge feature-login # 把 feature-login 合并过来

如果遇到冲突(conflict),Git 会提示哪些文件冲突,手动编辑文件解决后addcommit即可。

6. 远程仓库(以 Gitee / GitHub 为例)

远程仓库是放在服务器上的代码库,用于备份和多人协作。

6.1 添加远程仓库地址

先在 Gitee/GitHub 上创建一个空仓库(不要勾选“生成README”),得到类似https://gitee.com/你的用户名/仓库名.git的地址。

在本地仓库下执行:

git remote add origin 远程仓库地址

例如:git remote add origin https://gitee.com/d-pk/screen.git

查看远程仓库:

git remote -v

6.2 推送本地分支到远程

第一次推送需要关联上游分支:

git push -u origin master
  • -u表示建立本地master与远程master的关联,之后可直接git push

  • 如果远程仓库有内容(比如README),需先git pull origin master --allow-unrelated-histories拉取合并。

6.3 克隆远程仓库

如果项目已经在远程,想下载到本地:

git clone 远程仓库地址

会自动创建本地仓库并关联远程。

6.4 拉取远程更新

git pull origin master # 拉取并合并(常用) git fetch origin master # 只拉取不合并,查看差异后再决定

7. 常见错误与解决方案(结合你遇到的问题)

错误:fatal: unable to access '...': Could not resolve host: gitee.com

  • 原因:DNS 解析失败,电脑找不到 Gitee 的服务器。

  • 解决步骤(由简到繁):

    1. 刷新 DNS:打开 CMD 执行ipconfig /flushdns

    2. 修改 hosts 文件(临时):C:\Windows\System32\drivers\etc\hosts末尾添加180.76.198.77 gitee.com

    3. 更换 DNS 服务器:比如改成114.114.114.114223.5.5.5

    4. 使用 SSH 协议(最稳定):先生成 SSH 密钥,添加到 Gitee,然后git remote set-url origin git@gitee.com:用户名/仓库名.git

    5. 检查 Git 代理git config --global --unset http.proxy

错误:Updates were rejected because the remote contains work...

  • 原因:远程仓库有本地没有的提交(比如你创建远程时勾选了 README)。

  • 解决git pull origin master --allow-unrelated-histories,合并后再 push。

错误:Permission denied (publickey)

  • 原因:使用 SSH 协议但未添加公钥到 Gitee/GitHub。

  • 解决:重新生成密钥,把~/.ssh/id_ed25519.pub内容添加到平台。

8. .gitignore —— 忽略不需要版本控制的文件

有些文件(编译产物、日志、本地配置)不应提交。在项目根目录创建.gitignore文件,写入要忽略的规则:

# 忽略所有 .log 文件 *.log # 忽略 node_modules 文件夹 node_modules/ # 忽略 .env 文件 .env

9. 常用命令速查表

命令作用
git init初始化仓库
git status查看当前状态
git add .添加所有改动到暂存区
git commit -m "msg"提交
git log --oneline看简洁历史
git branch列出分支
git checkout -b 分支名创建并切换分支
git merge 分支名合并分支
git remote add origin URL关联远程仓库
git push -u origin master首次推送
git pull拉取并合并
git clone URL克隆仓库

10. 学习建议与路径

  1. 先理解三个区:工作区 → 暂存区 → 版本库(commit)

  2. 多用git status:迷茫时就敲它,它会提示你下一步能做什么。

  3. 模仿真实流程:自己创建一个项目,写几个文件,来回提交、建分支、合并、推送到远程。

  4. 可视化工具辅助:初期可以用 Git GUI(如 Sourcetree、GitKraken)或 IDE 内置的 Git 插件(VS Code、IntelliJ)帮助理解图形化概念。

  5. 多练习解决冲突:故意制造冲突(两个分支修改同一行),然后手动合并,这是协作中最需要掌握的技能。

http://www.cnnetsun.cn/news/2508955.html

相关文章:

  • 在模型广场对比不同模型的响应速度与风格选择合适接口
  • 大模型API中转站工程选型:OpenAI兼容、成本和稳定性怎么评估
  • Diablo Edit2终极指南:5分钟解决暗黑2存档编辑的所有痛点
  • Chrome二维码插件:本地化跨设备数据流转技术方案
  • 独立开发者如何利用 Taotoken 的 Token Plan 套餐控制项目预算
  • 原神抽卡分析终极指南:免费开源工具帮你掌握每次祈愿数据
  • 三步实现智能二维码转换:告别复制粘贴的跨设备链接分享方案
  • 想彻底改造Office界面?这个免费工具让你5分钟搞定个性化工作区
  • 五大处理器架构深度解析与高阶选型指南
  • OBS多平台直播终极指南:obs-multi-rtmp插件高效实现多路RTMP推流
  • 5个关键技巧:用Source Sans 3打造专业级UI字体系统
  • 如何快速掌握DLSS Swapper:新手完整入门指南
  • 互联网大厂 Java 求职面试:揭秘核心技术与实际场景
  • 互联网大厂 Java 求职者面试:音视频、微服务与支付服务的技术探讨
  • 如何高效使用Supervisely:计算机视觉标注完整实践指南
  • AI Agent 工具调用系统设计:让大模型掌控世界
  • 告别公网IP!用OpenWRT软路由+Zerotier实现远程访问NAS和智能家居(保姆级教程)
  • Arm嵌入式跟踪技术(ETE)原理与实战指南
  • FinalShell的密码安全吗?从配置文件解密看本地存储风险
  • 碧蓝航线全皮肤解锁终极指南:Perseus补丁5分钟快速上手教程
  • STM32G431时钟树配置避坑指南:从CubeMX图形化到代码生成的完整流程(蓝桥杯嵌入式备赛)
  • Mac Mouse Fix终极指南:如何让普通鼠标在macOS上超越苹果触控板
  • 如何利用 AI Agent 优化日常办公自动化流程?
  • 3步解决FanControl风扇控制软件配置难题:从崩溃到稳定运行的完整指南
  • csp信奥赛C++高频考点专项训练之前缀和差分 --【二维前缀和】:最大正方形
  • 微信聊天记录守护者:用技术温度守护你的数字记忆
  • HoRain云--大语言模型基础(LLM)
  • 如何快速掌握Diablo Edit2:3步完成暗黑2角色定制与游戏体验优化
  • 华中科技大学等:当机器人“记性不好“,它怎么知道下一步该干嘛?
  • 竞品动态实时监控与关键信号识别,落地方法详解:2026年大模型Agent实操指南