如何知道 git 添加的百分比。已经处理了吗?
How to know the percentage of git add . that is already processed?
我正在将多个大文件添加到存储库中。
git add .
这需要很多时间。有什么方法可以显示进度条,以便我可以知道有多少文件已经添加到存储库中?
没有进度条,但至少您会得到一些反馈并查看哪些文件已添加:
git add --verbose .
这是一个单行代码,每秒计算进度百分比:
git add --verbose . > ../progress.txt & percent=0; while [[ $percent -le 99 && $percent -ge 0 ]]; do num1=$(cat ../progress.txt | wc -l); num2=$(find . -type f -not -path "./.git/*" | wc -l); percent=$((num1*100 / (num2 - 3) )); echo $percent"%"; sleep 1; done; echo "DONE"; sleep 1; rm ../progress.txt
- 进度不到100%
- 计算
git add
生成的行数 ( num1 )
- 统计文件夹中除
.git/*
以外的所有文件(num2)
- 根据这些数字计算百分比 (num1*100 / num2)
- 我们应该从 num2 中减去 3,因为 find 命令回显的行比预期的要多
- 脚本会生成一个临时 progress.txt 文件,但会在最后删除
示例输出:
12%
25%
50%
50%
75%
75%
100%
我正在将多个大文件添加到存储库中。
git add .
这需要很多时间。有什么方法可以显示进度条,以便我可以知道有多少文件已经添加到存储库中?
没有进度条,但至少您会得到一些反馈并查看哪些文件已添加:
git add --verbose .
这是一个单行代码,每秒计算进度百分比:
git add --verbose . > ../progress.txt & percent=0; while [[ $percent -le 99 && $percent -ge 0 ]]; do num1=$(cat ../progress.txt | wc -l); num2=$(find . -type f -not -path "./.git/*" | wc -l); percent=$((num1*100 / (num2 - 3) )); echo $percent"%"; sleep 1; done; echo "DONE"; sleep 1; rm ../progress.txt
- 进度不到100%
- 计算
git add
生成的行数 ( num1 ) - 统计文件夹中除
.git/*
以外的所有文件(num2) - 根据这些数字计算百分比 (num1*100 / num2)
- 我们应该从 num2 中减去 3,因为 find 命令回显的行比预期的要多
- 脚本会生成一个临时 progress.txt 文件,但会在最后删除
示例输出:
12%
25%
50%
50%
75%
75%
100%