-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgitDiffAddCommit.sh
executable file
·129 lines (100 loc) · 3.39 KB
/
gitDiffAddCommit.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#/bin/bash
#usage : gitDiffAddCommit file
#MODIFIED_FILES_LIST=`git ls-files -m`
#echo $MODIFIED_FILES_LIST
printMsg () {
echo '##################################################'
echo $1
echo '##################################################'
}
gitAddCommit () {
echo '##################################################'
echo 'You see the diff ;-), give me your commit message within quotes "msg"'
echo '##################################################'
read -r -p "Your message :" msg
echo '##################################################'
echo 'Nice thank you, I add your commit with the given message '
echo '##################################################'
git add $1
git commit -m "$msg"
echo 'done'
}
mapfile -t my_array < <( git ls-files -m )
Length=${#my_array[@]}
if [ $Length -eq 0 ] ;then
echo There is no modified files in your repo.
exit
fi
echo '##################################################'
echo "Here is the list of modified files in your repo ($Length files) :"
echo '##################################################'
COUNTER=0
for oneFile in "${my_array[@]}"
do
echo File name $COUNTER : $oneFile
((COUNTER++))
done
echo '##################################################'
echo 'Now, you can choose one file (enter the number it is easier) '
echo 'or we will loop for each file, enter "l" for the loop '
echo '##################################################'
read rep
if [ "$rep" != "${rep#[lL]}" ] ;then
for oneFile in "${my_array[@]}"
do
echo '##################################################'
echo "Do you want to see the diff of $oneFile (y/n)?"
echo '##################################################'
read answer
if [ "$answer" != "${answer#[Yy]}" ] ;then
git diff $oneFile
echo '##################################################'
echo "Do you want to add commit this file (y/n)?"
echo '##################################################'
read stillYes
if [ "$stillYes" != "${stillYes#[Yy]}" ] ;then
gitAddCommit $oneFile
fi
fi
done
else
if [ "$rep" -gt "$Length" ] ;then
echo Wrong number, I am furious
exit
fi
echo '##################################################'
echo you choose ${my_array[$rep]}, here is the diff
echo '##################################################'
git diff ${my_array[$rep]}
echo '##################################################'
echo "Do you want to add commit this file (y/n)?"
echo '##################################################'
read stillYes
if [ "$stillYes" != "${stillYes#[Yy]}" ] ;then
gitAddCommit ${my_array[$rep]}
fi
fi
exit
exit
if [ $# -lt 1 ]
then
echo "usage: ./gitDiffAddCommit.sh file1 "
exit 0
fi
TO_PRINT="TRUE"
print () {
if [ $TO_PRINT = "TRUE" ]
then
echo $1
fi
}
git diff $1
echo '##################################################'
echo 'You see the diff ;-), give me your commit message as "message ..." '
echo '##################################################'
read msg
echo '##################################################'
echo 'Nice thank you, I add your commit with the given message '
echo '##################################################'
#git add $1
#git commit -m $msg