如何避免在git-add时指定绝对文件path

一旦文件path变得冗长,使用git add命令就变得单调乏味了。 例如git add src_test/com/abc/product/server/datasource/manager/aats/DSManger.java
是否有可能绕过指定绝对文件path? 可能会使用某种模式或什么?

我知道我们可以使用git gui 。 但我想用cmd行来做。

预先感谢投入。

对于类Unix系统,您可以始终使用星形指向文件,例如

  git add *DSManager.java 

将包括所有DSManager.java文件git可以在您的源代码树中从当前工作目录开始find。

用bash,你可以设置“globstar”( shopt -s globstar )然后:

 git add **/DSManger.java 

添加当前目录下所有名为DSManager.java的文件。

**/匹配所有目录和子目录。)

这是添加文件的另一种方法。 在git 1.7.1中至less支持。

 $ git add -i staged unstaged path 1: unchanged +61/-61 a/very/long/path/that/we/really/dont/want/to/type.txt 2: unchanged +1/-1 another/very/long/path/that/we/really/dont/want/to/type.txt *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 2 

2select更新,或者键入u

  staged unstaged path 1: unchanged +61/-61 a/very/long/path/that/we/really/dont/want/to/type.txt 2: unchanged +1/-1 another/very/long/path/that/we/really/dont/want/to/type.txt Update>> 2 

按下您想要放映的文件的编号。 用逗号分隔多个数字,例如1,2

  staged unstaged path 1: unchanged +61/-61 a/very/long/path/that/we/really/dont/want/to/type.txt * 2: unchanged +1/-1 another/very/long/path/that/we/really/dont/want/to/type.txt Update>> 

只需在这里按[enter]

 updated one path *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> q Bye. 

最后input7q退出。

我不确定我是否理解你的问题。

要添加所有文件(尚未添加),请使用:

 git add . 

如果您需要添加除一个文件以外的所有文件,请将所有文件全部删除,然后使用以下命令删除文件

 git reset HEAD <file> 

你也可以添加一个子目录中的所有文件

 git add subdir/ 

有一件事,我知道可能会很烦人的是,当你重命名文件,你需要添加新的文件名和git rm旧名称。 当重命名一个目录时,这可能很烦人。 这(只有unix)git别名解决了这个问题(把它放在你的〜/ .gitconfig文件中:

 [alias] ;add after this heading or create this heading if it does not exist addremove = !git add . && git ls-files --deleted | xargs --no-run-if-empty git rm 

这将添加所有新文件,并删除所有删除的文件,并将其分级到索引。

如果你的terminal窗口正在cd到合适的文件夹(src_test / com / abc / product / server / datasource / manager / aats)中,我相信你可以说“git add DSManger.java”。 所以只要做:

 cd src_test/com/abc/product/server/datasource/manager/aats git add DSManger.java 

否则,除非你单独做回购,否则我想不出别的办法。