简介
在 Git 版本控制系统中,了解如何管理和丢弃暂存的修改对于维护干净、有序的代码仓库至关重要。本教程将为你在 Git 工作流程中有效处理暂存文件和撤销不需要的更改提供全面指导。
在 Git 版本控制系统中,了解如何管理和丢弃暂存的修改对于维护干净、有序的代码仓库至关重要。本教程将为你在 Git 工作流程中有效处理暂存文件和撤销不需要的更改提供全面指导。
在 Git 中,暂存区(也称为索引)是工作目录和 Git 仓库之间的一个关键中间步骤。它使你能够有选择地决定要提交哪些更改。
暂存是为提交准备文件的过程。当你暂存文件时,你是在告诉 Git 你希望在下一次提交中包含哪些修改。
命令 | 描述 |
---|---|
git add <file> |
暂存特定文件 |
git add. |
暂存所有修改的文件 |
git status |
检查暂存状态 |
让我们在 Ubuntu 22.04 上的实际场景中演示暂存:
## 创建一个新目录并初始化一个 Git 仓库
mkdir git-staging-demo
cd git-staging-demo
git init
## 创建一个示例文件
echo "Hello, LabEx Git Tutorial" > example.txt
## 检查仓库状态
git status
## 暂存文件
git add example.txt
## 验证暂存
git status
通过理解 Git 暂存,你可以更好地控制版本控制工作流程。
当你已经暂存了文件,但又想撤销这些更改时,Git 提供了多种策略来撤销暂存的修改。
git reset
用于取消文件暂存的主要命令是 git reset
:
## 取消特定文件的暂存
git reset HEAD <文件名>
## 取消所有暂存的文件
git reset HEAD
git restore
现代 Git 版本推荐使用 git restore
:
## 取消特定文件的暂存
git restore --staged <文件名>
## 取消所有暂存的文件
git restore --staged.
## 初始化一个 Git 仓库
mkdir git-revert-demo
cd git-revert-demo
git init
## 创建示例文件
echo "First content" > file1.txt
echo "Second content" > file2.txt
## 暂存两个文件
git add file1.txt file2.txt
## 检查暂存状态
git status
## 取消特定文件的暂存
git restore --staged file1.txt
命令 | 作用范围 | Git 版本 | 是否推荐 |
---|---|---|---|
git reset HEAD |
特定/全部 | 所有版本 | 较旧版本 |
git restore --staged |
特定/全部 | 2.23 及以上 | 当前版本 |
git restore --staged
不会修改文件内容学习 Git 时,在安全的实验环境中练习这些命令,以增强对版本控制技术的信心。
除了基本操作外,Git 还提供了用于管理暂存和修改文件的复杂方法。
git add -p
交互式补丁模式允许选择性地暂存文件的部分内容:
## 进入交互式暂存
git add -p
## 交互式暂存期间的选项:
## y - 暂存此块
## n - 不暂存此块
## s - 拆分当前块
## e - 手动编辑当前块
## 贮藏当前更改
git stash
## 列出所有贮藏
git stash list
## 应用最新贮藏
git stash pop
## 应用特定贮藏
git stash apply stash@{n}
技术 | 命令 | 目的 |
---|---|---|
部分取消暂存 | git restore -p |
选择性地取消暂存更改 |
丢弃本地更改 | git checkout -- <file> |
移除未提交的修改 |
清理未跟踪文件 | git clean -fd |
移除未跟踪的文件/目录 |
## 忽略空白字符更改
git config --global core.whitespace -trailing-space
## 启用自动颜色输出
git config --global color.ui auto
掌握这些高级技术需要在可控环境中持续练习和实验。
--dry-run
进行测试## 创建一个安全的修改工作流程
git fetch origin
git checkout -b safe-modifications
## 进行你的更改
git add.
git commit -m "安全的实验性更改"
高级 Git 修改技术为你的版本管理提供了精细控制,支持更复杂的开发工作流程。
掌握丢弃暂存修改的技术,能让开发者对其 Git 仓库保持精确控制。通过理解暂存基础、撤销文件以及应用高级修改策略,程序员可以简化他们的版本控制流程,并自信地确保代码的完整性。