Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git是否有引用深度嵌套文件的快捷方式?_Git - Fatal编程技术网

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

Git是否有引用深度嵌套文件的快捷方式?,git,Git,我已经开始使用Java,这让我的Git使用更加痛苦。在许多Java设置中,文件嵌套得非常深,例如: src/main/java/com/example/Main.java 所以我不能在Git添加内容时使用tab complete,我必须键入所有这些目录。是否有任何类型的Git设置可以帮助实现这一点?例如,如果Git知道只添加了一个Main.java,那么如果Git add Main.java刚刚工作,但没有工作,那就更好了。有类似的东西吗?Git支持所有已知的“FileGlob”(有关详细信息

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

src/main/java/com/example/Main.java
所以我不能在Git添加内容时使用tab complete,我必须键入所有这些目录。是否有任何类型的Git设置可以帮助实现这一点?例如,如果Git知道只添加了一个Main.java,那么如果
Git add Main.java
刚刚工作,但没有工作,那就更好了。有类似的东西吗?

Git支持所有已知的“FileGlob”(有关详细信息,请参阅文档)。您可能从正则表达式中知道这些占位符。 可以找到这些glob的列表

就你而言

git add src/*/Main.java

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

似乎您正在寻找的是
git add--interactive
。这是一个交互式工具,可用于暂存/取消暂存更改。您不必指定完整的文件名,因为git会对每个文件进行编号

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

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


参考-

在您给出的具体示例中,您可以说

git add **/Main.java
在本例中,git不“知道只有一个
Main.java
”;但是如果你知道只有一个,这个命令会添加它。(如果在
下的目录中有多个同名文件,则会将它们全部添加。)


我总是习惯于开始键入每个目录名,当我深入每个目录名时,点击tab键。它不如用一个标签来完成名称;对我来说,这总比什么都没有好,但我想也许在我了解更多之前我就已经习惯了:)

git add.不起作用,或者你只是想添加特定的文件吗?你可以使用GUI工具,比如sourcetree@Matt
git add.
确实有效,但通常我想添加单个文件大多数IDE都有很好的支持(即使是第三方)。否则,您可以使用source tree、Ortoisegit或GitSCM GUI,如@Basilbatikhi所述。看起来,
git add--interactive
可以帮助您做到这一点。您不需要按每个文件的(长)引用每个文件名称。您可能需要引用glob,以防止shell将其扩展到不同的文件列表,而不是在
git
看到它之前。