Git 快速上手
本章将通过一个简单的实例,让你在 5 分钟内体验 Git 的基本功能,快速了解 Git 的工作方式。
准备工作
确保你已经:
- ✅ 安装了 Git
- ✅ 配置了用户名和邮箱
- ✅ 有一个可以使用的终端或命令行
第一个 Git 仓库
1. 创建项目文件夹
bash
# 创建一个新的项目文件夹
mkdir my-first-git-project
cd my-first-git-project2. 初始化 Git 仓库
bash
# 初始化 Git 仓库
git init
# 你会看到类似输出:
# Initialized empty Git repository in /path/to/my-first-git-project/.git/🎉 恭喜!你刚刚创建了你的第一个 Git 仓库。
3. 查看仓库状态
bash
# 查看当前仓库状态
git status输出类似:
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)创建和跟踪文件
1. 创建第一个文件
bash
# 创建一个简单的文本文件
echo "# 我的第一个 Git 项目" > README.md
echo "这是一个学习 Git 的练习项目。" >> README.md2. 查看状态变化
bash
git status输出:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)📝 解释:Git 发现了新文件 README.md,但还没有开始跟踪它。
3. 添加文件到暂存区
bash
# 添加文件到暂存区
git add README.md
# 再次查看状态
git status输出:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md✨ 解释:文件现在在暂存区,准备被提交。
第一次提交
1. 创建提交
bash
# 创建第一次提交
git commit -m "添加 README 文件"输出:
[main (root-commit) a1b2c3d] 添加 README 文件
1 file changed, 2 insertions(+)
create mode 100644 README.md🎊 恭喜:你完成了第一次提交!
2. 查看提交历史
bash
# 查看提交历史
git log输出:
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0 (HEAD -> main)
Author: 你的姓名 <your.email@example.com>
Date: Mon Jan 1 12:00:00 2024 +0800
添加 README 文件修改和更新文件
1. 修改文件
bash
# 向文件添加更多内容
echo "" >> README.md
echo "## 学习内容" >> README.md
echo "- Git 基础操作" >> README.md
echo "- 版本控制概念" >> README.md2. 查看修改
bash
# 查看文件状态
git status输出:
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" or "git commit -a")bash
# 查看具体修改内容
git diff输出:
diff
diff --git a/README.md b/README.md
index 1234567..abcdefg 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,5 @@
# 我的第一个 Git 项目
这是一个学习 Git 的练习项目。
+
+## 学习内容
+- Git 基础操作
+- 版本控制概念3. 提交修改
bash
# 添加修改到暂存区
git add README.md
# 提交修改
git commit -m "添加学习内容列表"查看项目历史
1. 查看提交历史
bash
# 查看详细历史
git log
# 查看简洁历史
git log --oneline简洁输出:
b2c3d4e 添加学习内容列表
a1b2c3d 添加 README 文件2. 查看文件变化
bash
# 查看两次提交之间的差异
git diff a1b2c3d b2c3d4e
# 查看特定提交的内容
git show b2c3d4e创建更多文件
让我们创建一个更复杂的项目结构:
1. 创建代码文件
bash
# 创建一个简单的 Python 脚本
cat > hello.py << EOF
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def main():
print("Hello, Git!")
print("这是我的第一个 Git 项目")
if __name__ == "__main__":
main()
EOF2. 创建配置文件
bash
# 创建 .gitignore 文件
cat > .gitignore << EOF
# Python
__pycache__/
*.pyc
*.pyo
*.pyd
.Python
# 编辑器
.vscode/
.idea/
*.swp
*.swo
# 系统文件
.DS_Store
Thumbs.db
EOF3. 一次性添加多个文件
bash
# 查看当前状态
git status
# 添加所有新文件
git add .
# 查看暂存区状态
git status
# 提交所有修改
git commit -m "添加 Python 脚本和 .gitignore 文件"分支基础操作
1. 查看分支
bash
# 查看当前分支
git branch
# 输出:
# * main2. 创建新分支
bash
# 创建并切换到新分支
git checkout -b feature/add-greeting
# 或者使用新语法(Git 2.23+)
# git switch -c feature/add-greeting3. 在新分支上工作
bash
# 修改 Python 文件
cat > hello.py << EOF
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def greet(name):
return f"Hello, {name}!"
def main():
name = input("请输入你的名字: ")
greeting = greet(name)
print(greeting)
print("欢迎来到 Git 的世界!")
if __name__ == "__main__":
main()
EOF
# 提交修改
git add hello.py
git commit -m "添加交互式问候功能"4. 切换回主分支
bash
# 切换回 main 分支
git checkout main
# 查看文件内容(会发现是旧版本)
cat hello.py5. 合并分支
bash
# 合并 feature 分支到 main
git merge feature/add-greeting
# 查看合并后的文件
cat hello.py
# 删除已合并的分支
git branch -d feature/add-greeting远程仓库体验
1. 连接到 GitHub(可选)
如果你有 GitHub 账号,可以体验远程仓库:
bash
# 在 GitHub 上创建一个新仓库(通过网页)
# 然后添加远程仓库
git remote add origin https://github.com/你的用户名/my-first-git-project.git
# 推送到远程仓库
git push -u origin main2. 模拟协作(本地)
bash
# 创建一个"协作者"的克隆
cd ..
git clone my-first-git-project collaborator-project
cd collaborator-project
# 模拟协作者的修改
echo "- 分支管理" >> README.md
git add README.md
git commit -m "协作者添加:分支管理学习内容"
# 回到原项目
cd ../my-first-git-project
# 模拟从远程拉取更新
git pull ../collaborator-project main实用技巧演示
1. 查看美化的日志
bash
# 使用别名查看美化的日志(如果之前配置了)
git lg
# 或者直接使用完整命令
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit2. 撤销操作演示
bash
# 创建一个错误的修改
echo "这是一个错误的修改" >> README.md
# 查看状态
git status
# 撤销工作区的修改
git restore README.md
# 或者使用旧语法
# git checkout -- README.md3. 暂存区操作
bash
# 修改文件
echo "临时修改" >> hello.py
# 添加到暂存区
git add hello.py
# 从暂存区移除(但保留工作区修改)
git restore --staged hello.py
# 查看状态
git status项目总结
让我们看看我们完成了什么:
bash
# 查看最终的项目结构
ls -la
# 查看完整的提交历史
git log --oneline --graph --all
# 查看项目统计
git log --stat你的项目现在应该包含:
- 📄
README.md- 项目说明文件 - 🐍
hello.py- Python 脚本 - 🚫
.gitignore- Git 忽略文件 - 📁
.git/- Git 仓库数据(隐藏文件夹)
快速参考卡片
基本命令速查
bash
# 仓库操作
git init # 初始化仓库
git clone <url> # 克隆仓库
git status # 查看状态
# 文件操作
git add <file> # 添加文件到暂存区
git add . # 添加所有文件
git commit -m "message" # 提交修改
git diff # 查看修改
# 历史查看
git log # 查看提交历史
git log --oneline # 简洁历史
git show <commit> # 查看特定提交
# 分支操作
git branch # 查看分支
git checkout -b <branch> # 创建并切换分支
git merge <branch> # 合并分支
git branch -d <branch> # 删除分支Git 工作流程图
工作区 (Working Directory)
↓ git add
暂存区 (Staging Area)
↓ git commit
本地仓库 (Local Repository)
↓ git push
远程仓库 (Remote Repository)下一步学习
通过这个快速上手教程,你已经体验了:
- ✅ 创建和初始化 Git 仓库
- ✅ 添加和提交文件
- ✅ 查看历史和状态
- ✅ 基本的分支操作
- ✅ 文件修改和撤销
在接下来的章节中,我们将深入学习:
- Git 的工作流程原理
- 工作区、暂存区和版本库的概念
- 更多的分支管理技巧
- 远程仓库协作
- 高级 Git 操作
练习建议
- 重复操作:多次练习基本的 add、commit 流程
- 实验分支:创建更多分支,尝试不同的合并场景
- 查看历史:使用不同的
git log参数查看历史 - 故意犯错:尝试各种撤销操作,学会修复错误
记住:Git 是一个非常安全的系统,大部分操作都可以撤销,所以不要害怕尝试!