Git 完全入门指南_自用
📅 2026/7/3 13:20:26
👁️ 阅读次数
📝 编程学习
Git 完全入门指南 📚
一份从零开始的 Git 学习笔记,涵盖核心概念和日常操作
📖 目录
- Git 是什么
- 核心概念:目录和路径
- 创建仓库(git init)
- 文件管理(add & commit)
- 远程仓库(GitHub)
- 分支管理(branch & merge)
- 常用命令速查表
1. Git 是什么
| 概念 | 说明 |
|---|---|
| Git | 版本管理工具,记录每次修改,可随时回退 |
| GitHub | 存放 Git 仓库的网站(云盘 + 协作平台) |
| 类比 | Git = 驾照,GitHub = 停车场 |
2. 核心概念:目录和路径
2.1 当前目录
终端始终有一个"当前位置",所有操作都基于此位置。
pwd# 显示当前所在路径(我在哪?)cd文件夹名# 切换目录(走进去)cd~# 回到用户目录cd..# 回到上级目录ls# 查看当前文件夹内容ls-a# 查看所有内容(含隐藏文件 .git)2.2 路径缩写
| 符号 | 含义 | 示例 |
|---|---|---|
~ | 用户目录 | ~/Desktop=/Users/名字/Desktop |
. | 当前目录 | git add .= 添加当前文件夹所有修改 |
.. | 上级目录 | cd ..= 回到上级文件夹 |
3. 创建仓库(git init)
3.1 三种初始化方式
# 方式1:在当前位置初始化gitinit# 把当前文件夹变成Git仓库# 方式2:新建文件夹并初始化gitinit 新文件夹名# 创建"新文件夹"并在里面初始化仓库# 方式3:指定路径创建gitinit ~/Desktop/my-project# 在桌面创建 my-project 并初始化3.2 验证是否成功
ls-a# 看到 .git 隐藏文件夹 → 成功!gitstatus# 查看仓库状态(报错说明不在仓库里)3.3 完整示例
cd~/Desktopmkdirmy-projectcdmy-projectgitinitls-a# 看到 .git ✅4. 文件管理(add & commit)
4.1 核心流程
创建文件 → git add → git commit ↓ ↓ ↓ 写代码 放入暂存区 正式存档(生成版本)4.2 git add
gitadd文件名# 添加指定文件gitadd.# 添加当前文件夹所有修改gitadd-A# 添加仓库所有修改(含隐藏文件)gitadd*.js# 添加所有 .js 文件注意:git add只管理"已存在"的文件,不会创建文件!
4.3 git commit
gitcommit-m"提交说明"# -m = message,写清楚你改了啥gitcommit# 不写 -m 会弹出编辑器(不推荐)提交说明规范:
✅ 好的说明:git commit-m"修复了登录页面的样式bug"✅ 好的说明:git commit-m"添加了用户注册的邮箱验证功能"❌ 差的说明:git commit-m"fix"❌ 差的说明:git commit-m"123"4.4 git commit -a(快捷方式)
gitcommit-a-m"说明"# -a = auto:自动 add 所有"已被Git管理"的文件的修改# ⚠️ 注意:不能添加"新文件"(从未被Git管理过的)| 文件状态 | git commit -a是否生效 |
|---|---|
| 已存在的文件(修改) | ✅ 自动 add 并提交 |
| 新建的文件 | ❌ 被忽略,需手动 add |
4.5 git rm(删除文件)
gitrm文件名# = rm 文件名 + git add 文件名(告诉Git文件被删了)# 等价于:rm文件名gitadd文件名5. 远程仓库(GitHub)
5.1 核心概念
本地仓库(你电脑) ←→ 远程仓库(GitHub) git push = 本地 → 远程(上传) git pull = 远程 → 本地(下载+合并) git clone = 从远程复制到本地(首次)5.2 从 GitHub 克隆
# HTTPS 方式(推荐新手)gitclone https://github.com/用户名/仓库名.git# SSH 方式(需配置密钥)gitclone git@github.com:用户名/仓库名.gitgit clone自动完成:
- 创建项目文件夹
- 下载所有代码
- 建立本地与远程的关联
5.3 日常工作流
# ===== 第1步:克隆项目(只做一次) =====gitclone https://github.com/用户名/仓库名.gitcd仓库名# ===== 第2步:开始工作 =====# 用VS Code修改代码...# ===== 第3步:本地提交 =====gitadd.gitcommit-m"说明你改了啥"# ===== 第4步:推送到GitHub =====gitpush# 不需要参数!Git已记住远程地址# ===== 第5步:第二天开始工作 =====gitpull# 拉取队友的最新修改# 然后回到第2步循环...5.4 git push 完整写法(了解即可)
gitpush origin main# origin = 远程仓库默认名# main = 要推送的分支名# 99%情况直接用 git push 即可5.5 常见报错处理
# 报错:Permission denied# 解决:用HTTPS方式,输入用户名和Token# 报错:failed to push# 原因:队友先推送了,你本地不是最新# 解决:gitpull# 先拉取最新# 解决冲突后...gitpush# 再推送6. 分支管理(branch & merge)
6.1 分支是什么?
分支 = 平行宇宙 🌌
main分支(主宇宙)→ 正式发布的代码 test分支(新宇宙)→ 实验新功能,不影响主宇宙6.2 分支基本操作
gitbranch# 查看所有分支(* 表示当前所在)gitbranchtest# 创建 test 分支gitcheckouttest# 切换到 test 分支gitswitchtest# 切换到 test 分支(新语法)gitcheckout-btest# 创建并切换到 test 分支(一步到位)6.3 合并分支
# 1. 在 test 分支开发gitcheckouttest# 修改代码...gitadd.gitcommit-m"开发新功能"# 2. 切回 main 分支gitcheckout main# 3. 合并 test 到 main(本地操作!)gitmergetest# 4. 推送到 GitHubgitpush# 5. 删除本地分支gitbranch-dtest6.4 分支工作流图示
开发前: main: [A]-----[B]-----[C] test: 从C分叉出去 开发中: main: [A]-----[B]-----[C] \ test: [D]-----[E] 合并后: main: [A]-----[B]-----[C]-----[D]-----[E] test: (已删除)7. 常用命令速查表
7.1 基础命令
| 命令 | 作用 |
|---|---|
git init | 初始化仓库 |
git clone <url> | 克隆远程仓库 |
git status | 查看仓库状态 |
git add <文件> | 添加文件到暂存区 |
git commit -m "说明" | 提交到仓库 |
git log | 查看提交历史 |
7.2 远程操作
| 命令 | 作用 |
|---|---|
git push | 推送到GitHub |
git pull | 从GitHub拉取并合并 |
git remote -v | 查看远程仓库地址 |
7.3 分支操作
| 命令 | 作用 |
|---|---|
git branch | 查看分支列表 |
git branch <名字> | 创建分支 |
git checkout <分支> | 切换分支 |
git merge <分支> | 合并分支到当前分支 |
git branch -d <分支> | 删除分支 |
7.4 完整工作流(每日循环)
# 开始工作gitpull# 拉取最新# 写代码...(用VS Code)# 提交gitadd.# 添加所有修改gitcommit-m"具体说明"# 提交# 推送gitpush# 上传到GitHub🎯 核心要点总结
- Git 管理的是"变化",不是完整副本,所以仓库不会无限增大
- 所有操作先在本地完成,
git push才上传到GitHub - 分支是平行宇宙,互不影响,合并后才统一
- 提交说明要写清楚,方便自己和他人理解
git add+git commit= 两步走,先准备后存档git pull前先确保本地修改已提交,避免冲突
📝 术语表
| 术语 | 英文 | 中文解释 |
|---|---|---|
| 仓库 | Repository | 存放代码和版本历史的地方 |
| 暂存区 | Staging Area | git add后的临时存放区 |
| 提交 | Commit | 生成一个版本快照 |
| 分支 | Branch | 独立的开发线路 |
| 合并 | Merge | 将两个分支合并 |
| 克隆 | Clone | 从远程复制仓库到本地 |
| 推送 | Push | 上传到远程仓库 |
| 拉取 | Pull | 从远程仓库下载并合并 |
参考:Git 官方文档 + 实战经验
编程学习
技术分享
实战经验