如何避免在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
按2
select更新,或者键入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.
最后input7
或q
退出。
我不确定我是否理解你的问题。
要添加所有文件(尚未添加),请使用:
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
否则,除非你单独做回购,否则我想不出别的办法。