Git是否有快捷方式来引用深层嵌套文件?

时间:2018-03-15 15:29:59

标签: git

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

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

所以当Git添加内容时我无法使用tab-complete,我必须输入所有这些目录。是否有任何类型的Git设置可以帮助解决这个问题?例如,如果Git知道只有一个Main.java已被添加,那么如果git add Main.java只是工作,那就太好了,但事实并非如此。有什么类似的吗?

3 个答案:

答案 0 :(得分:1)

Git支持所有已知的“Fileglobs”(请参阅​​git add的文档)。您可以从正则表达式中了解这些占位符。 可以找到这些全球的列表here

在你的情况下

git add src/*/Main.java

这可能会在src / dir中添加所有Main.java文件,但这是一个不错的“快捷方式”。你甚至可以把它缩小到你已经发现的东西。

答案 1 :(得分:1)

似乎@RequestMapping("/api/") public String h(@RequestParam String title){ System.out.println(title); return "view"; } 正是您所寻找的。这是一个交互式工具,允许您暂存/取消更改。您不必指定完整的文件名,因为git会为每个文件编号。

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

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

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

答案 2 :(得分:1)

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

git add **/Main.java

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

我一直习惯于开始输入每个目录名称,然后点击标签,因为我对每个目录都足够了。它不如单个标签完成名称那么好;对我来说,这比没有好,但我想也许我已经习惯了,因为在我知道之前更好:)