我知道 Git 的交互式登台功能,但如果只需要将一两个文件添加到暂存区,则会有点笨重。
是否有命令可以通过索引将文件添加到暂存区?
例子:
让我们以此为例回答(针对类似的问题)。
$ git status -s
M a/very/long/path/that/we/really/dont/want/to/type.txt
M another/very/long/path/that/we/really/dont/want/to/type.txt
然后是未知的命令:
$ git add #2
这将导致:
$ git status -s
M a/very/long/path/that/we/really/dont/want/to/type.txt
A another/very/long/path/that/we/really/dont/want/to/type.txt
答案1
由于我没有找到“官方”解决方案,因此我创建了自己的脚本。
它很粗糙,几乎没有经过测试:
#!/usr/bin/bash
git_status=`git status --porcelain`
if [[ $# -ne 1 ]]
then
# Get modified files and their index
# nl: numbers the lines
echo "$git_status" | nl
exit 0
fi
if ! [[ "$1" =~ ^[0-9]+$ ]]
then
echo "Sorry integers only"
exit 1
fi
line=`echo "$git_status" | sed "${1}q;d"`
# remove first 4 chars. E.g. M and some spaces
file=`echo "$line" | cut -c3-`
git add $file
git status -s
用法:
gai
我为该脚本创建了一个别名:
$ gai
1 M README.md
2 M package.json
$ gai 2
M README.md
M package.json