正如一些人提到的,一种可能的方法是使用git interactive staging。
当您拥有具有不同扩展名的文件时,这很棒
$ git add -i
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
如果您按2,然后按enter,您将获得要添加的可用文件列表:
What now> 2
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
现在您只需插入要添加的文件数量,因此如果我们要添加TODO 和index.html,我们将输入1,2
Update>> 1,2
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
你看到号码前的*了吗?这意味着该文件已添加。
现在假设您有 7 个文件,并且您想要添加除第 7 个之外的所有文件?当然我们可以输入1,2,3,4,5,6,但是想象一下我们有16个而不是7,那会很麻烦,好在我们不需要输入它们,因为我们可以使用范围,通过输入1-6
Update>> 1-6
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
* 4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
7: unchanged +5/-1 file7.html
Update>>
我们甚至可以使用多个范围,所以如果我们想要从 1 到 3 以及从 5 到 7,我们输入1-3, 5-7:
Update>> 1-3, 5-7
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
* 7: unchanged +5/-1 file7.html
Update>>
如果我们输入-number,我们也可以使用它来取消暂存文件,因此如果我们想取消暂存文件编号1,我们将输入-1:
Update>> -1
staged unstaged path
1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
* 7: unchanged +5/-1 file7.html
Update>>
您可以想象我们也可以取消暂存一系列文件,因此如果我们输入-range,该范围内的所有文件都将取消暂存。如果我们想取消从 5 到 7 的所有文件,我们可以输入 -5-7:
Update>> -5-7
staged unstaged path
1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
5: unchanged +5/-1 file5.html
6: unchanged +5/-1 file6.html
7: unchanged +5/-1 file7.html
Update>>