如何管理 Git 仓库和文件暂存

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本全面的 Git 教程为开发者提供了使用版本控制有效管理软件项目的基本技能。学习如何初始化仓库、配置设置、跟踪文件更改,以及理解 Git 版本控制系统的基本机制。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/rm("Remove Files") git/BasicOperationsGroup -.-> git/clean("Clean Workspace") git/DataManagementGroup -.-> git/reset("Undo Changes") git/DataManagementGroup -.-> git/restore("Revert Files") subgraph Lab Skills git/add -.-> lab-391842{{"如何管理 Git 仓库和文件暂存"}} git/rm -.-> lab-391842{{"如何管理 Git 仓库和文件暂存"}} git/clean -.-> lab-391842{{"如何管理 Git 仓库和文件暂存"}} git/reset -.-> lab-391842{{"如何管理 Git 仓库和文件暂存"}} git/restore -.-> lab-391842{{"如何管理 Git 仓库和文件暂存"}} end

Git 仓库基础

理解 Git 版本控制

Git 是一个分布式版本控制系统,旨在在软件开发过程中跟踪源代码的更改。它通过管理文件修改、分支和合并,使多个开发者能够高效协作。

创建新的 Git 仓库

要初始化一个新的 Git 仓库,使用 git init 命令:

mkdir my-project
cd my-project
git init

此命令会创建一个隐藏的 .git 目录,用于存储所有仓库元数据和版本历史。

仓库配置

使用全局设置配置你的 Git 身份:

git config --global user.name "你的名字"
git config --global user.email "[email protected]"
配置选项 用途
user.name 设置你的提交作者姓名
user.email 设置你的提交电子邮件地址

基本仓库工作流程

graph LR A[工作目录] --> B[暂存区] B --> C[本地仓库] C --> D[远程仓库]

用于仓库管理的关键 Git 命令:

  • git status:检查仓库状态
  • git add:暂存文件
  • git commit:在本地保存更改
  • git push:将更改上传到远程仓库

文件跟踪机制

Git 通过三种主要状态跟踪文件:

  1. 未跟踪
  2. 已修改
  3. 已暂存

文件跟踪示例:

## 检查仓库状态
git status

## 添加特定文件
git add README.md

## 添加所有文件
git add.

## 提交更改
git commit -m "初始项目设置"

Git 文件暂存技术

理解暂存区

Git 暂存区是工作目录和仓库之间的一个中间区域,它允许你精确控制哪些文件更改会被提交。

暂存命令概述

graph LR A[工作目录] -->|git add| B[暂存区] B -->|git commit| C[本地仓库]
命令 功能
git add <file> 暂存特定文件
git add. 暂存所有已修改的文件
git add -A 暂存所有更改,包括已删除的文件

详细的暂存技术

## 暂存单个文件
git add README.md

## 暂存多个文件
git add file1.txt file2.py

## 暂存当前目录下所有已修改的文件
git add.

## 交互式暂存
git add -p

高级文件管理

## 从暂存区移除文件
git reset HEAD file.txt

## 查看暂存的更改
git diff --staged

## 取消暂存所有更改
git reset

提交工作流程演示

## 暂存特定更改
git add src/main.py

## 使用描述性消息提交
git commit -m "实现用户认证模块"

## 提交所有已跟踪且已修改的文件
git commit -am "更新用户管理"

高级 Git 文件操作

文件删除与跟踪策略

graph LR A[工作目录] -->|删除| B[暂存区] B -->|提交| C[仓库]

从 Git 中删除文件

## 从仓库和文件系统中删除文件
git rm file.txt

## 从仓库中删除文件,但保留在文件系统中
git rm --cached file.txt

## 删除多个文件
git rm *.log

撤销更改与恢复文件

操作 命令 目的
丢弃本地更改 git checkout -- file.txt 将文件恢复到上次提交的状态
取消暂存文件 git reset HEAD file.txt 从暂存区移除文件
撤销提交 git revert <提交哈希> 创建一个新提交来撤销更改

高级文件操作

## 在 Git 中重命名文件
git mv old-name.txt new-name.txt

## 将文件移动到另一个目录
git mv file.txt./subdirectory/

## 恢复特定版本的文件
git restore --source=HEAD~1 file.txt

复杂文件管理场景

## 临时存储更改
git stash save "进行中的工作"

## 列出存储的更改
git stash list

## 应用最新的存储
git stash apply

## 清理未跟踪的文件
git clean -fd

提交历史文件操作

## 修改最后一次提交
git commit --amend

## 交互式查看文件历史
git log -p file.txt

## 查找文件的原始作者
git blame file.txt

总结

通过掌握 Git 仓库基础和文件暂存技术,开发者可以简化工作流程、更高效地协作,并对项目版本历史保持精确控制。理解这些核心的 Git 概念有助于实现更好的代码管理、跟踪更改以及开发团队间的无缝协作。