如何使用脚本循环git状态
我需要帮助: 我想在没有状态码的情况下循环git状态码,或者将状态码放在一行中;我正在使用下面的代码:如何使用脚本循环git状态,git,scripting,git-status,Git,Scripting,Git Status,我需要帮助: 我想在没有状态码的情况下循环git状态码,或者将状态码放在一行中;我正在使用下面的代码: # file.sh files=$(git status --porcelain) for file in $files; do echo $file done # OUTPUT M example_folder/example_file M example_folder_1/example_file_1 M example_folder_2/example_file_2 ....
# file.sh
files=$(git status --porcelain)
for file in $files; do
echo $file
done
# OUTPUT
M
example_folder/example_file
M
example_folder_1/example_file_1
M
example_folder_2/example_file_2
....
问题是状态代码始终显示,我需要删除状态代码或按如下方式将其放在一起:
# LINES EXPECTED
M example_folder/example_file
M example_folder_1/example_file_1
# OR
example_folder/example_file
example_folder_1/example_file_1
files=$(git status --porcelain)
for file in $files; do
echo $file
git add $file
read -p "enter a comment: " comments
git commit -m "${comments}"
done
我的目标是使用控制台输出输入,如下所示:
# LINES EXPECTED
M example_folder/example_file
M example_folder_1/example_file_1
# OR
example_folder/example_file
example_folder_1/example_file_1
files=$(git status --porcelain)
for file in $files; do
echo $file
git add $file
read -p "enter a comment: " comments
git commit -m "${comments}"
done
上面的代码正在工作,但状态代码也收到了注释,我需要删除或将其放在每行修改的一行中
问候。您想写以下内容:
#!/bin/sh
files=$(git status --porcelain | cut -b4-)
for file in $files; do
echo $file
git add $file
read -p "enter a comment: " comments
git commit -m "${comments}"
done
cut-b4-
将修剪输出的状态部分。--cerial
在中显示结果
在短格式中,每个路径的状态显示为以下形式之一
当原始路径
重命名为路径
时,会出现第二种格式。使用awk
获取路径
files=$(git status --porcelain | awk '{print $NF}')
for file in $files; do
echo $file
git add $file
read -p "enter a comment: " comments
git commit -m "${comments}" -- ${file}
done