Skip to content

第3章:Git 本地仓库基础

3.1 本地仓库创建

方式1:git init 初始化新仓库

操作步骤

  1. 打开命令行工具,进入要创建仓库的目录
  2. 运行 git init 命令
  3. 仓库创建成功后,会在当前目录生成 .git 目录

示例

bash
# 创建并进入项目目录
mkdir my-project
cd my-project

# 初始化 Git 仓库
git init

# 输出
Initialized empty Git repository in /path/to/my-project/.git/

方式2:git clone 克隆远程仓库

操作步骤

  1. 打开命令行工具
  2. 运行 git clone <远程仓库地址> 命令
  3. 仓库克隆成功后,会在当前目录生成一个与仓库同名的目录

示例

bash
# 克隆远程仓库
git clone https://github.com/username/repository.git

# 输出
Cloning into 'repository'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (80/80), done.
remote: Total 100 (delta 20), reused 100 (delta 20), pack-reused 0
Receiving objects: 100% (100/100), 1.00 MiB | 1.00 MiB/s, done.
Resolving deltas: 100% (20/20), done.

3.2 工作区、暂存区、版本库

Git 中有三个重要的概念:工作区、暂存区和版本库。

工作区(Working Directory)

  • 就是你在电脑上看到的目录
  • 包含项目的所有文件
  • 可以直接修改文件内容

暂存区(Staging Area)

  • 位于 .git 目录中的索引文件
  • 临时保存你的改动
  • 可以添加多个文件,一次性提交

版本库(Repository)

  • 位于 .git 目录
  • 包含所有的版本信息
  • 是 Git 管理的核心

三者关系

  1. 在工作区修改文件
  2. 使用 git add 将修改添加到暂存区
  3. 使用 git commit 将暂存区的内容提交到版本库

3.3 核心基础命令

git add:将文件添加到暂存区

功能:将工作区的修改添加到暂存区

用法

bash
# 添加单个文件
git add <文件>

# 添加多个文件
git add <文件1> <文件2> <文件3>

# 添加当前目录所有文件
git add .

# 添加指定目录所有文件
git add <目录>/

示例

bash
# 添加单个文件
git add index.html

# 添加所有文件
git add .

git commit:将暂存区文件提交到版本库

功能:将暂存区的内容提交到版本库

用法

bash
# 提交并添加提交信息
git commit -m "提交信息"

# 提交所有已跟踪文件的修改
git commit -a -m "提交信息"

# 修改上次提交的信息
git commit --amend -m "新的提交信息"

提交信息规范

  • 简洁明了,不超过50个字符
  • 使用现在时态,如 "Add feature" 而不是 "Added feature"
  • 首字母大写
  • 结尾不要加句号
  • 详细信息可以在第二行开始添加

示例

bash
# 提交并添加提交信息
git commit -m "Add login functionality"

# 提交所有已跟踪文件的修改
git commit -a -m "Update user profile page"

git status:查看当前仓库状态

功能:查看工作区和暂存区的状态

用法

bash
git status

输出说明

  • Untracked files:未跟踪的文件,需要使用 git add 添加
  • Changes not staged for commit:已修改但未添加到暂存区的文件
  • Changes to be committed:已添加到暂存区的文件

示例

bash
git status

# 输出
On branch master
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:   index.html

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        style.css

no changes added to commit (use "git add" and/or "git commit -a")

git log:查看提交记录

功能:查看版本库的提交历史

用法

bash
# 查看所有提交记录
git log

# 查看最近 n 条提交记录
git log -n <>

# 以简洁模式查看提交记录
git log --oneline

# 查看提交记录和文件变更
git log -p

示例

bash
# 查看所有提交记录
git log

# 以简洁模式查看最近5条提交记录
git log --oneline -5

3.4 版本回溯

git reset:回退版本

功能:将当前分支回退到指定版本

用法

bash
# 回退到上一个版本
git reset --hard HEAD~

# 回退到指定版本
git reset --hard <提交哈希>

# 回退到指定版本,但保留工作区修改
git reset --mixed <提交哈希>

# 回退到指定版本,但保留工作区和暂存区修改
git reset --soft <提交哈希>

参数说明

  • --hard:重置工作区、暂存区和版本库
  • --mixed:重置暂存区和版本库,保留工作区(默认)
  • --soft:只重置版本库,保留工作区和暂存区

示例

bash
# 回退到上一个版本
git reset --hard HEAD~

# 回退到指定版本
git reset --hard a1b2c3d

注意事项

  • git reset --hard 会丢弃所有未提交的修改,使用时要谨慎
  • 回退后,如果需要回到原来的版本,需要知道原来版本的哈希值

3.5 忽略文件

.gitignore 文件

功能:指定 Git 应该忽略的文件和目录

创建方法

  1. 在项目根目录创建 .gitignore 文件
  2. 在文件中添加需要忽略的文件和目录

常用忽略规则

# 忽略 node_modules 目录
node_modules/

# 忽略构建产物
build/
dist/

# 忽略日志文件
logs/
*.log

# 忽略环境变量文件
.env
.env.local

# 忽略编辑器配置文件
.vscode/
.idea/
*.swp
*.swo

# 忽略操作系统文件
.DS_Store
Thumbs.db

示例

bash
# 创建 .gitignore 文件
touch .gitignore

# 编辑 .gitignore 文件
echo "node_modules/" >> .gitignore
echo "build/" >> .gitignore
echo ".env" >> .gitignore

3.6 本地仓库实操案例

新建文件、修改、提交、回溯

操作步骤

  1. 创建本地仓库

    bash
    mkdir git-demo
    cd git-demo
    git init
  2. 创建第一个文件

    bash
    echo "Hello Git!" > README.md
    git add README.md
    git commit -m "Initial commit"
  3. 修改文件

    bash
    echo "This is a Git demo." >> README.md
    git add README.md
    git commit -m "Update README"
  4. 创建新文件

    bash
    echo "console.log('Hello World!');" > app.js
    git add app.js
    git commit -m "Add app.js"
  5. 查看提交记录

    bash
    git log --oneline
  6. 版本回溯

    bash
    # 回退到上一个版本
    git reset --hard HEAD~
    
    # 查看文件内容
    cat README.md
    
    # 查看是否还有 app.js 文件
    ls
  7. 回到最新版本

    bash
    # 查看所有提交记录(包括被回退的)
    git reflog
    
    # 回到最新版本
    git reset --hard <最新版本的哈希>

通过本章的学习,你已经掌握了 Git 本地仓库的基本操作。接下来,我们将学习 Git 的核心命令进阶。

© 2026 编程马·菜鸟教程 版权所有