📜  Git-调试

📅  最后修改于: 2021-10-22 03:14:03             🧑  作者: Mango

像传统的文字编辑器一样,我们不能简单地撤消更改。我们有各种 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 badgit 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 开始到最后一个文件编号的文件编号。
    • “*”删除所有内容。
  • 询问每个:这将一一询问是否删除特定文件。
  • 退出:此选项可让您退出而不删除。