跳到主要内容Git 入门教程 | 极客日志编程语言
Git 入门教程
综述由AI生成Git 版本控制系统的入门知识,包括环境安装、用户配置、仓库初始化、文件暂存与提交、版本回退、分支管理、远程仓库操作及标签管理等核心功能。此外,还涵盖了常见问题的解决方案、Git 工作流(如集中式、功能分支、Git Flow)以及团队协作的最佳实践,旨在帮助开发者快速上手并高效管理代码版本。
涅槃凤凰32 浏览 Git 入门教程
从零开始学习 Git 版本控制系统
一、初始化 Git 配置
1. 安装 Git
Git 下载地址
安装完成后,在开始菜单中找到 Git Bash 打开。
2. 检查安装
查看 Git 版本,检测是否安装成功:
git --version
3. 配置用户信息
配置用户名和邮箱(必须):
git config --global user.name "你的名字"
git config --global user.email "[email protected]"
4. 查看配置
查看所有配置信息:
git config --global --list
5. 配置 SSH 公钥
生成 SSH 密钥
ssh-keygen -t rsa -C "[email protected]"
操作步骤:
- 第一次回车:显示密钥存放位置(默认:
~/.ssh/id_rsa)
- 第二次回车:输入密码(建议直接回车,不设置密码)
- 第三次回车:确认密码
- 生成完成
查找公钥文件
- Windows:
C:\Users\你的用户名\.ssh\id_rsa.pub
- Mac/Linux:
~/.ssh/id_rsa.pub
添加到 GitHub/GitLab
- 打开
id_rsa.pub 文件,复制全部内容
- 登录 GitHub/GitLab
- 进入 Settings → SSH Keys
- 点击 Add SSH Key,粘贴公钥并保存
验证 SSH 配置
ssh -T [email protected]
ssh -T [email protected]
成功会显示:Hi username! You've successfully authenticated...
二、初始化仓库
方式 1:创建本地新仓库
1. 创建项目文件夹
mkdir my_project
cd my_project
2. 初始化 Git 仓库
执行后会创建 .git 隐藏文件夹(Git 仓库核心,不要删除)
3. 创建文件并提交
touch README.md
git add README.md
git commit -m "Initial commit"
4. 关联远程仓库(可选)
git remote add origin <远程仓库 URL>
git push -u origin main
5. 删除仓库
方式 2:克隆远程仓库
git clone https://github.com/username/repo.git
git clone -b <分支名> <远程仓库 URL>
三、工作区域和文件状态
Git 的三个工作区域
工作区 (Working Directory) ↓ git add 暂存区 (Staging Area) ↓ git commit 本地仓库 (Local Repository) ↓ git push 远程仓库 (Remote Repository)
| 区域 | 说明 |
|---|
| 工作区 | 本地计算机上的项目目录,可以直接编辑文件 |
| 暂存区 | 临时存储区,保存即将提交的修改 |
| 本地仓库 | Git 存储项目历史记录的地方 |
| 远程仓库 | 托管在服务器上的仓库(如 GitHub) |
文件的三种状态
| 状态 | 说明 | 命令 |
|---|
| 已修改 (Modified) | 文件已修改但未暂存 | git add 进入暂存 |
| 已暂存 (Staged) | 文件已添加到暂存区 | git commit 提交 |
| 已提交 (Committed) | 文件已保存到本地仓库 | git push 推送 |
查看文件状态
四、添加和提交文件
1. 创建文件
echo "Hello World" > file1.txt
2. 查看文件内容
3. 查看仓库状态
4. 添加到暂存区
git add file1.txt file2.txt
5. 提交到本地仓库
6. 查看提交历史
git log
git log --oneline
git log --graph --oneline
git log -3
五、回退版本
1. 查看提交历史
a1b2c3d (HEAD -> main) 第三次提交
e4f5g6h 第二次提交
i7j8k9l 第一次提交
2. 回退方式对比
| 命令 | 工作区 | 暂存区 | 本地仓库 | 使用场景 |
|---|
git reset --soft | 保留 | 保留 | 回退 | 重新提交 |
git reset --mixed | 保留 | 清空 | 回退 | 重新暂存(默认) |
git reset --hard | 清空 | 清空 | 回退 | 完全放弃修改 |
3. 回退到上一个版本
4. 回退到指定版本
git reset --hard <commit-id>
5. 撤销工作区修改
git checkout -- file1.txt
git restore file1.txt
6. 取消暂存
git reset HEAD file1.txt
git restore --staged file1.txt
7. 查看所有操作记录
可以找到所有提交的 commit-id,即使已经回退也能找回。
六、分支管理
1. 查看分支
git branch
git branch -a
git branch -r
2. 创建分支
3. 切换分支
git checkout <分支名># 新版命令
git switch <分支名>
4. 创建并切换分支
git checkout -b <分支名># 新版命令
git switch -c <分支名>
5. 合并分支
git checkout main
git merge <分支名>
6. 删除分支
git branch -d <分支名># 强制删除分支
git branch -D <分支名>
7. 解决合并冲突
git status
<<<<<<< HEAD
当前分支的内容
=======
要合并分支的内容
>>>>>>> branch-name
# 3. 标记为已解决
git add <冲突文件>
# 4. 完成合并
git commit -m "解决冲突"
七、远程仓库操作
1. 查看远程仓库
2. 添加远程仓库
git remote add origin <远程仓库 URL>
3. 推送到远程
git push -u origin main
git push
4. 拉取远程更新
git pull origin main
git fetch origin
git merge origin/main
5. 克隆远程仓库
6. 删除远程分支
git push origin --delete <分支名>
八、常见问题
问题 1:提交了错误的文件
git reset --soft HEAD^
git add <正确的文件>
git commit -m "正确的提交"
问题 2:修改最后一次提交信息
git commit --amend -m "新的提交信息"
问题 3:忘记切换分支就开始工作
git stash
git checkout <正确分支>
git stash pop
问题 4:误删了文件
git checkout -- <文件名>
git checkout <commit-id> -- <文件名>
问题 5:推送被拒绝
git pull origin main
git push origin main
问题 6:.gitignore 不生效
git rm --cached <文件名>
git commit -m "更新.gitignore"
常用.gitignore 模板
*.class
*.o
*.pyc
*.log
node_modules/
vendor/
.idea/
.vscode/
*.iml
.DS_Store
Thumbs.db
.env
config.local.js
学习资源
九、标签管理
1. 创建标签
git tag v1.0
git tag -a v1.0 -m "版本 1.0 发布"
git tag -a v0.9 <commit-id> -m "版本 0.9"
2. 查看标签
git tag
git show v1.0
git tag -l "v1.*"
3. 推送标签
git push origin v1.0
git push origin --tags
4. 删除标签
git tag -d v1.0
git push origin --delete v1.0
十、Git 工作流
1. 集中式工作流
git pull origin main
git add
git commit -m "新功能"
git push origin main
2. 功能分支工作流
git checkout -b feature/login
git add
git commit -m "实现登录功能"
git push origin feature/login
git checkout main
git merge feature/login
git branch -d feature/login
3. Git Flow 工作流
main:生产环境代码
develop:开发分支
feature/*:功能分支
release/*:发布分支
hotfix/*:紧急修复分支
git checkout -b feature/new-feature develop
git checkout develop
git merge feature/new-feature
git checkout -b release/1.0 develop
git checkout main
git merge release/1.0
git tag -a v1.0 -m "版本 1.0"
git checkout develop
git merge release/1.0
十一、高级技巧
1. 暂存工作区
git stash
git stash list
git stash pop
git stash apply stash@{0}
git stash drop stash@{0}
git stash clear
2. 修改提交历史
git commit --amend -m "新的提交信息"
git rebase -i HEAD~3
3. 查看差异
git diff
git diff --staged
git diff branch1 branch2
git diff file.txt
4. 文件操作
git mv old.txt new.txt
git rm file.txt
git rm --cached file.txt
5. 查找提交
git log --author="张三"
git log --since="2025-01-01" --until="2025-12-31"
git log --grep="修复"
git log --follow file.txt
git blame file.txt
十二、团队协作
1. Fork 工作流
git clone <你的 Fork 仓库 URL>
git remote add upstream <原始仓库 URL>
git checkout -b feature/new-feature
git add
git commit -m "新功能"
git push origin feature/new-feature
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
2. Pull Request 流程
- Fork 项目
- 创建功能分支
- 提交代码
- 推送到自己的仓库
- 创建 Pull Request
- 代码审查
- 合并或修改
3. Code Review 最佳实践
- 提交前自己先 review 一遍
- PR 描述清晰,说明改动原因
- 保持 PR 小而专注
- 及时响应 review 意见
- 使用有意义的 commit message
快速参考
常用命令速查
| 命令 | 说明 |
|---|
git init | 初始化仓库 |
git clone <url> | 克隆仓库 |
git status | 查看状态 |
git add . | 添加所有文件 |
git commit -m "msg" | 提交 |
git push | 推送 |
git pull | 拉取 |
git branch | 查看分支 |
git checkout -b <name> | 创建并切换分支 |
git merge <branch> | 合并分支 |
git log --oneline | 查看历史 |
git reset --hard <id> | 回退版本 |
git stash | 暂存工作 |
提交信息规范
<type>(<scope>): <subject>
<body>
<footer>
feat:新功能
fix:修复 bug
docs:文档更新
style:代码格式
refactor:重构
test:测试
chore:构建/工具
feat(login): 添加记住密码功能
- 添加记住密码复选框
- 实现本地存储逻辑
- 添加自动登录功能
Closes #123
下一步
- 实际创建一个项目练习
- 学习更多高级命令(参考 Git 命令速查手册)
- 了解 Git 工作流(Git Flow、GitHub Flow)
- 学习团队协作(Pull Request、Code Review)
- 掌握 Git Hooks 自动化工作流
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online