1

我通常在给定的提交中处理一些文件,有时我只想提交其中的一些文件,或者可能回滚一些文件。我最终不得不手动输入大部分文件,尤其是如果文件位于同一路径中。

git status
...
   modified: src/foo/Views/bar/helloWorld.html
   modified: src/foo/Views/bar/helloCrazyWorld.html
   modified: src/foo/Views/bar/goodByeCruelWorld.html
   modified: src/foo/Controllers/bar/hello
   modified: src/foo/Controllers/bar/goodbye

忽略可怕和无意义的目录结构。git checkout src/foo/Controllers/bar/hello在不实际输入完整路径的情况下快速指定我想要的最佳方法是什么?

假设可能存在类似以下的目录,因此制表符补全并不总是比键入更可行。

src/fob
src/foo/Views/bad

能够说git checkout #4并让它结帐第 4 项会很好。或者git commit #2提交第二个。

4

2 回答 2

3

如今,大多数不错的 shell 都支持**匹配多个子目录级别的通配符。你可以这样做,例如:

git status **/goodbye

适用于 bash 和 zsh。我不使用其他 shell,但如果任何现代的东西缺乏这种能力,我会感到惊讶。

于 2013-09-09T17:42:35.633 回答
1

没有办法在 CLI 上执行此操作(除非您自己编写)。这些用例是 GUI 擅长的。 尝试一堆,直到找到你喜欢的一个。

于 2013-09-09T17:36:23.820 回答