如何使用bash cd到具有.git文件夹的最近的父文件夹?

4 git bash cd

处理受版本控制的项目时,我经常最终进入嵌套文件夹.使用cd ../../有点麻烦,所以我想知道是否有一种方法可以在bash中定义cd到父级的别名,直到它到达带有文件夹的.git文件夹,或者它到达~.

所以我们这样说吧

  • ~/my-project 是一个git存储库
  • 我的cwd是 ~/my-project/deeply/nested/folder/structure
  • 我运行命令,然后进入 ~/my-project

什么命令可以做到这一点?我需要一个bash功能吗?

U2E*_*EF1 9

您正在寻找的命令是git rev-parse --show-toplevel,您可以创建一个使用它的bash函数.

gr() {
    cd "$(git rev-parse --show-toplevel)"
}
Run Code Online (Sandbox Code Playgroud)

我也有~/.gitconfig:

[alias]
    root = rev-parse --show-toplevel
Run Code Online (Sandbox Code Playgroud)

这使得这个命令看起来更合理一些.

  • 蒸馏:粘贴到你的`.bash_aliases`中:`alias gr='cd "$(git rev-parse --show-toplevel)"'` (2认同)