Git使用教程之本地仓库的基本操作

Git 是一个分布式版本控制系统,广泛用于代码管理和协作开发。本教程聚焦于 Git 本地仓库的基本操作,适合初学者,涵盖初始化仓库、提交代码、管理历史记录等核心功能。以下内容基于 Git 最新版本(截至 2025 年 9 月,Git 2.46.x),使用命令行操作,结合实际示例,简洁且实操性强。所有操作假设你已安装 Git(可从 git-scm.com 下载)。


1. 准备工作

  • 安装 Git
  • Windows:下载安装程序,运行后默认配置即可。
  • macOS:通过 brew install git 或 Xcode 安装。
  • Linux:sudo apt install git(Ubuntu)或 sudo dnf install git(Fedora)。
  • 验证安装:终端运行 git --version,应显示版本号(如 git version 2.46.0)。
  • 配置用户信息(全局设置,首次使用):
  git config --global user.name "Your Name"
  git config --global user.email "your.email@example.com"
  • 检查配置:git config --list

2. 本地仓库基本操作

以下是本地仓库的核心操作流程,从创建仓库到管理提交。

2.1 初始化仓库

在项目目录中创建 Git 仓库:

mkdir my-project
cd my-project
git init
  • 效果:创建 .git/ 目录,初始化一个空的 Git 仓库。
  • 验证:运行 git status,显示当前分支(默认 mainmaster)和状态。

2.2 添加文件到暂存区

  1. 创建文件
   echo "# My Project" > README.md
   touch index.html
  1. 检查状态
   git status
  • 输出:显示 README.mdindex.html 为未跟踪(Untracked)。
  1. 添加文件到暂存区
   git add README.md
   git add index.html
  • 或添加所有文件:git add .
  • 效果:文件进入暂存区(Staged),准备提交。

2.3 提交更改

将暂存区的文件提交到仓库:

git commit -m "Initial commit"
  • -m:指定提交信息,简洁描述更改内容。
  • 效果:创建一次提交(commit),记录到 .git 历史。
  • 验证:运行 git log,查看提交历史:
  commit abc123... (HEAD -> main)
  Author: Your Name <your.email@example.com>
  Date:   Sat Sep 20 19:38:00 2025 -0700
      Initial commit

2.4 修改文件并提交

  1. 修改文件
   echo "<h1>Hello, Git!</h1>" > index.html
  1. 检查差异
   git diff
  • 显示 index.html 的修改内容。
  1. 暂存修改
   git add index.html
  1. 提交修改
   git commit -m "Add greeting to index.html"

2.5 查看提交历史

  • 基本查看
  git log
  • 显示详细提交记录(哈希、作者、日期、提交信息)。
  • 简化输出
  git log --oneline
  • 输出:abc123 Initial commit(每行显示提交哈希和信息)。
  • 图形化查看
  git log --graph --all --oneline

2.6 撤销更改

  • 撤销工作区修改(未暂存):
  git restore index.html
  • 或旧命令:git checkout -- index.html(Git 2.23 前)。
  • 撤销暂存
  git restore --staged index.html
  • 或旧命令:git reset HEAD index.html
  • 撤销提交(保留更改):
  git reset --soft HEAD^1
  • HEAD^1:回退到上一次提交,代码保留在工作区。
  • 撤销提交并丢弃更改
  git reset --hard HEAD^1

2.7 分支管理

分支是 Git 的强大功能,允许并行开发。

  • 创建分支
  git branch feature
  • 切换分支
  git checkout feature
  • 或合并命令(Git 2.23+):git switch feature
  • 创建并切换分支
  git checkout -b feature
  • 或:git switch -c feature
  • 合并分支
  1. 切换到主分支:
    bash git checkout main
  2. 合并 feature 分支:
    bash git merge feature
  • 如果有冲突,Git 会提示,手动编辑冲突文件后:
    bash git add <冲突文件> git commit
  • 删除分支
  git branch -d feature

2.8 查看状态

随时检查仓库状态:

git status
  • 显示工作区、暂存区和分支状态。
  • 示例输出:
  On branch main
  Changes not staged for commit:
    modified:   index.html
  Untracked files:
    newfile.txt

3. 示例:完整工作流

以下是一个实际操作示例,模拟开发流程:

  1. 初始化仓库
   mkdir my-app
   cd my-app
   git init
  1. 添加文件
   echo "Hello, Android!" > app.txt
   git add app.txt
   git commit -m "Add initial app file"
  1. 创建分支并修改
   git checkout -b dev
   echo "Updated app content" >> app.txt
   git add app.txt
   git commit -m "Update app content"
  1. 合并到主分支
   git checkout main
   git merge dev
   git branch -d dev
  1. 查看历史
   git log --oneline
  • 输出:
    xyz789 Update app content abc123 Add initial app file

4. 常见问题与解决方案

问题解决方法
误删文件或提交恢复文件:git restore <file>git checkout -- <file>;恢复提交:git reset --soft <commit>
冲突合并打开冲突文件,手动解决标记(如 <<<<<<< HEAD),然后 git addgit commit
git status 显示乱码设置编码:git config --global core.quotepath false(支持非 ASCII 字符)。
分支切换失败确保工作区干净(提交或暂存更改):git commitgit stash

5. 最佳实践

  • 提交信息清晰:写有意义的提交信息,如 “Add login feature” 而非 “Update”。
  • 频繁提交:小步提交,便于跟踪和回滚。
  • 使用分支:功能开发、修复 Bug 使用单独分支。
  • 检查状态:经常运行 git statusgit diff 确认更改。
  • 备份:本地仓库定期备份,或推送到远程(如 GitHub)。

6. 进阶提示

  • 暂存更改
  git stash
  git stash pop
  • 临时保存未提交更改,切换分支后恢复。
  • 查看具体提交
  git show <commit-hash>
  • 忽略文件:创建 .gitignore 文件,排除无关文件(如 *.log.idea/)。

7. 总结

Git 本地仓库操作是版本控制的基础,核心命令包括 git initgit addgit commitgit branchgit merge。通过初始化仓库、管理文件、提交更改和使用分支,你可以高效管理代码。熟练掌握这些操作后,可进一步学习远程仓库操作(如 git pushgit pull)。

如果需要更复杂的示例(如处理冲突、恢复误删提交)或远程仓库教程,请告诉我!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注