Git 是否有引用深度嵌套文件的快捷方式



我已经开始使用Java,这使我的Git使用更加痛苦。在许多Java设置中,文件嵌套得很深,例如:

src/main/java/com/example/Main.java

所以我在 Git 添加一些东西时不能使用 tab-complete,我必须输入所有这些目录。是否有任何 Git 设置可以帮助解决这个问题?例如,如果 Git 知道只添加了一个 Main.java,那么如果git add Main.java只是工作就好了,但它没有。有这样的事情吗?

Git 支持所有已知的"Fileglobs"(参见 git add 的文档(。您可能从正则表达式中知道这些占位符。可以在此处找到这些球的列表。

在您的情况下

git add src/*/Main.java

这可能会在 src/dir 中添加所有 Main.java 文件,但这是一个很好的"快捷方式"。您甚至可以将其缩小到您已经发现的内容。

看来git add --interactive就是你要找的。这是一个交互式工具,允许您暂存/取消暂存更改。您不必指定完整的文件名,因为 git 对每个文件进行编号。

文档对我来说有点混乱,但基本上,一旦您输入命令,将显示已更改的文件列表。然后,您可以进入"更新"模式并按编号选择每个文件。

要取消暂存文件,您需要选择"还原"模式,而不是"更新",然后以类似的方式按编号选择所需的文件。

参考 - https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging

在你给出的具体例子中,你可以说

git add **/Main.java

在这种情况下,git 不会"知道只有一个Main.java";但是,如果您知道只有一个,则此命令将添加它。 (如果在 . 下的目录中有多个具有该名称的文件,它将将它们全部添加。

我一直习惯于

开始输入每个目录名称,并在我深入每个目录名称时点击选项卡。 这不如让单个选项卡完成名称;对我来说,这总比没有好,但我想也许我只是在我知道更好的:)之前就已经习惯了它

最新更新