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

Vam*_*rni 53 git git-add

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

我知道我们可以使用git gui.但是我想用cmd线来做.

提前感谢您的投入.

Ste*_*fen 50

对于类似unix的系统,您始终可以使用星号指向文件,例如

 git add *DSManager.java
Run Code Online (Sandbox Code Playgroud)

将包括git可以在您当前工作目录中的源代码树中找到的所有DSManager.java文件.

  • 对我来说,这也适用于修改过的文件.也许这取决于git版本,bash版本,操作系统.我不知道.我在OSX 10.6上使用git 1.7.5.4和bash 4.2.10(2). (5认同)
  • 显然,这只会添加新创建的文件,但skipps修改了文件.有什么理由吗? (2认同)

enz*_*her 36

这是添加文件的另一种方法.至少在git 1.7.1中得到支持.

$ 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
Run Code Online (Sandbox Code Playgroud)

2选择更新,或键入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
Run Code Online (Sandbox Code Playgroud)

按与您要暂存的文件对应的数字.用逗号分隔多个数字,例如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>>
Run Code Online (Sandbox Code Playgroud)

[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.
Run Code Online (Sandbox Code Playgroud)

最后输入7q退出.

  • 这是正确的答案.它不像shell一样依赖于shell.此外,当文件名非常相似时,编写好的glob模式以匹配您想要添加的内容可能变得很困难. (6认同)
  • 很好的提及,这有帮助 (2认同)

dog*_*ane 33

使用bash,你可以设置"globstar"(shopt -s globstar),然后执行:

git add **/DSManger.java
Run Code Online (Sandbox Code Playgroud)

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

(**/匹配所有目录和子目录.)