首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 10章 编写高效的函数
10.1 函数名
10.2 函数大小的权衡
10.3 函数的形参和实参
10.3.1 默认参数
10.3.2 使用*和**向函数传参
10.3.3 使用*创建可变参数函数
10.3.4 使用**创建可变参数函数
10.3.5 使用*和**创建包装函数
10.4 函数式编程
10.4.1 副作用
10.4.2 高阶函数
10.4.3 lambda 函数
10.4.4 在列表推导式中进行映射和过滤
10.5 返回值的数据类型应该不变
10.6 抛出异常和返回错误码
第 11章 注释、文档字符串和类型提示
11.1 注释
11.1.1 注释风格
11.1.2 内联注释
11.1.3 说明性的注释
11.1.4 总结性的注释
11.1.5 “经验之谈”的注释
11.1.6 法律注释
11.1.7 注释的专业性
11.1.8 代码标签和TODO 注释
11.1.9 神奇的注释和源文件编码
11.2 文档字符串
11.3 类型提示
11.3.1 使用静态分析器
11.3.2 为多种类型设置类型提示
11.3.3 为列表、字典等设置类型提示
11.3.4 通过注释向后移植类型提示
第 12章 通过Git管理项目
12.1 Git 提交和仓库
12.2 使用Cookiecutter新建Python项目
12.3 安装Git
12.3.1 配置Git 用户名和电子邮件
12.3.2 安装GUI Git 工具
12.4 Git 的工作流程
12.4.1 Git 是如何追踪文件状态的
12.4.2 为什么要暂存文件
12.5 在计算机上创建Git 仓库
12.5.1 添加供Git 追踪的文件
12.5.2 忽略仓库中的文件
12.5.3 提交修改
12.5.4 从仓库中删除文件
12.5.5 重命名和移动仓库中的文件
12.6 查看提交日志
12.7 恢复历史修改
12.7.1 撤销未提交的本地修改
12.7.2 取消暂存的文件
12.7.3 回滚近期的提交
12.7.4 回滚到单个文件的某次提交
12.7.5 重写提交历史
12.8 GitHub 和git推送命令
12.8.1 将一个已存在的仓库推送到GitHub
12.8.2 克隆已存在的GitHub仓库
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(四)
小册名称:Python编程轻松进阶(四)
### 12.7.1 撤销未提交的本地修改 在Python编程或任何使用版本控制系统(如Git)的软件开发过程中,经常会遇到需要撤销或回滚本地未提交修改的情况。这些修改可能是在编码过程中的实验性改动、误操作或是临时决定放弃的更改。理解并熟练掌握撤销这些修改的技巧,对于维护代码库的整洁、避免不必要的合并冲突以及保护项目历史记录的清晰性至关重要。本章节将深入探讨如何在Git中撤销未提交的本地修改,包括使用Git命令行的不同方法来达到目的。 #### 一、理解Git的工作区、暂存区和版本库 在讨论如何撤销未提交的本地修改之前,有必要先理解Git的三个基本区域:工作区(Workspace)、暂存区(Stage/Index)和版本库(Repository)。 - **工作区**:即你的项目目录,包含了所有未提交的更改。这些更改可以是新添加的文件、对现有文件的修改或删除操作。 - **暂存区**:也称为索引区,是一个中间状态,用于存放你即将提交到版本库的更改。通过`git add`命令,你可以将工作区的更改添加到暂存区。 - **版本库**:是Git用来存储项目历史记录的数据库。通过`git commit`命令,你可以将暂存区的更改永久保存到版本库中,形成新的提交(Commit)。 #### 二、撤销工作区的修改 如果你只是修改了文件但还没有执行`git add`将这些修改添加到暂存区,那么你可以使用以下方法撤销这些修改: ##### 1. 使用`git checkout -- <file>` 这是撤销工作区单个文件修改的最直接方法。该命令会将指定文件回滚到最近一次提交时的状态,覆盖工作区的改动。 ```bash git checkout -- filename.py ``` 注意:从Git 2.23版本开始,推荐使用`git restore`命令代替`git checkout`来恢复工作区的文件,以避免与检出分支的混淆。 ```bash git restore filename.py ``` ##### 2. 撤销所有未暂存的修改 如果你想要撤销工作区中所有未暂存的修改,可以使用`git checkout .`或`git restore .`(Git 2.23+)。这会撤销当前目录下所有文件的未暂存修改。 ```bash git checkout . # 或者 git restore . ``` #### 三、撤销暂存区的修改 如果你已经使用`git add`将修改添加到了暂存区,但还没有提交,那么撤销这些修改的方式会有所不同。 ##### 1. 撤销暂存区的单个文件 你可以使用`git reset HEAD <file>`命令将暂存区的文件移回工作区,但不改变工作区的修改内容。 ```bash git reset HEAD filename.py ``` 然后,如果你想要撤销工作区的修改,可以结合使用`git checkout -- <file>`或`git restore <file>`。 ##### 2. 撤销所有暂存的修改 如果你想要撤销暂存区的所有修改,可以使用`git reset`命令不带任何文件参数,并指定为混合模式(默认模式),这将撤销所有暂存的修改,但保留工作区的修改。 ```bash git reset # 或者更明确地 git reset HEAD ``` 如果你希望完全撤销所有暂存和工作区的修改,回到最近一次提交的状态,可以使用`git reset --hard HEAD`,但请格外小心,因为这会丢失所有未提交的更改。 ```bash git reset --hard HEAD ``` #### 四、使用`git stash`保存和恢复工作进度 有时候,你可能想要暂时保存当前的工作进度,以便稍后恢复,同时切换到另一个分支或任务上工作。这时,`git stash`命令就显得非常有用。 ##### 1. 保存当前工作进度 ```bash git stash ``` 这会将所有未提交的修改(包括暂存区的)保存到一个临时的stash栈中,并让你的工作目录和暂存区变得干净。 ##### 2. 查看stash列表 ```bash git stash list ``` 这会列出所有保存的stash项。 ##### 3. 应用stash 你可以随时通过`git stash apply`命令来恢复一个stash项,但请注意,默认情况下,stash项在应用后不会从stash栈中删除。 ```bash git stash apply stash@{0} # 或者,如果只有一个stash项,直接使用 git stash apply ``` 如果你希望在应用stash后从栈中删除它,可以使用`git stash pop`。 ```bash git stash pop ``` #### 五、总结 撤销未提交的本地修改是Git版本控制中的一项基本且重要的技能。通过理解Git的工作区、暂存区和版本库的概念,以及熟练掌握`git checkout`/`git restore`、`git reset`和`git stash`等命令,你可以灵活地管理项目中的更改,避免不必要的混乱和错误。记住,在使用`git reset --hard`等可能丢失数据的命令时,务必谨慎行事,并考虑先备份重要数据。
上一篇:
12.7 恢复历史修改
下一篇:
12.7.2 取消暂存的文件
该分类下的相关小册推荐:
Python机器学习基础教程(上)
Python合辑12-面向对象
Python自动化办公实战
Python爬虫入门与实战开发(上)
Python与办公-玩转PPT
Python编程轻松进阶(二)
Python合辑9-判断和循环
Python3网络爬虫开发实战(上)
Python编程轻松进阶(五)
Python合辑1-Python语言基础
Python机器学习基础教程(下)
Python3网络爬虫开发实战(下)