像传统的文字编辑器一样,我们不能简单地撤消更改。我们有各种 git 命令可用于调试和撤消更改。我们将在本文中讨论此类命令。
git bisect:此命令使用二进制搜索算法找出引入错误的提交。它首先告诉它“坏”提交,即已知包含错误的提交和在引入错误之前已知的“好”提交。然后git bisect从“坏”提交中选择一个提交并询问所选提交是好还是坏并运行直到达到“好”提交。
这个怎么运作?
- git bisect start:它启动 git bisect 向导。
- git bisect bad “version”:它让 git bisect 向导知道一个错误的提交。
- git bisect good “version”:它让 git bisect 向导知道一个好的提交。
在下面这组命令之后,git 选择中间范围内的提交,检查它并返回输出。
注意:在这张图中,我们没有提到任何版本的git bisect bad和git bisect good ,所以当我们没有提到任何版本时,默认采用当前版本。
git 平分选项:
- git bisect reset:完成一次bisect session后,使用git bisect reset命令返回到原来的head。
- 撤销状态改变:有时,与其在 commit bisect 命令中发现错误,它还可以用来切换之前的状态。因此,当我们希望提交导致“旧”和“新”状态之间的变化时,可以使用它。
这个怎么运作?
分别使用旧的和新的而不是坏的和好的。- git 平分开始
- git 平分旧的“修订版”
- git bisect 新的“修订版”
- git bisect log:经过好坏的修改后,此命令用于获取已完成工作的概览。
- git bisect skip “version1”..”version2”:用于跳过一系列提交。这意味着不应该测试从 version1 到 version2 的提交。
git clean: git clean 命令用于从 git 项目中删除未跟踪的文件。此命令从工作树中完全删除文件,并且无法再次恢复。所以这个命令要慎重使用。
git 清理选项:
- -n 或 –dry-run此命令不会删除文件,但它是一个虚拟命令,用于说明实际执行的操作。它用于测试运行。
- -f 或 –force此命令从当前目录中删除文件。这是一个必要的命令,除非clean.requireforce配置设置为 false。
- -d此命令删除未跟踪的目录以及未跟踪的文件。
- -i 或 –interactive顾名思义,它是一个交互式命令,它告诉我们必须做什么。
交互模式:它是显示可用子命令的命令循环。
- clean:此命令会在该点删除未跟踪的目录/文件。
- 按模式过滤:我们可以输入诸如 *_ 之类的模式来排除文件/目录的删除。例如:“*.py”将从删除中排除提到的文件扩展名。
- 选择编号:此命令为要删除的未跟踪文件/目录分配一个编号。我们也可以进行多项选择。例如:
- “3-5”删除文件编号“3、4、5”。
- “3-5, 8, 9”删去“3, 4, 5, 8, 9”。
- “3-”删除从 3 开始到最后一个文件编号的文件编号。
- “*”删除所有内容。
- 询问每个:这将一一询问是否删除特定文件。
- 退出:此选项可让您退出而不删除。