Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Export GIT LOG into an Excel file

Tags:

git

logging

I have looked into the forum, but with no luck.

Requirement :

Run GIT LOG (format) command and write the results into an Excel File .

I have seen examples wherein with GIT Log command, data can be written into a CSV, but formatting is double the effort.

Any utility or approach would be helpful.

Thanks Milind

like image 461
milindbangar Avatar asked Aug 31 '16 15:08

milindbangar


2 Answers

Git gives your the control on how to format the log output using pretty option. Check this out:

git log --pretty=format:%h,%an,%ae,%s

This prints the log in the format of (hash [abbreviated], author name, author email, subject).

To see the full list of format options:

git help log

And scroll down until you see the list of format options.

To redirect the output, use > redirection operator as follows:

git log --pretty=format:%h,%an,%ae,%s > /path/to/file.csv
like image 126
joker Avatar answered Nov 15 '22 05:11

joker


my 2 cents in case anyone is looking:

echo "commit id,author,date,comment,changed files,lines added,lines deleted" > res.csv 
git log --since='last year'  --date=local --all --pretty="%x40%h%x2C%an%x2C%ad%x2C%x22%s%x22%x2C" --shortstat | tr "\n" " " | tr "@" "\n" >> res.csv
sed -i 's/ files changed//g' res.csv
sed -i 's/ file changed//g' res.csv
sed -i 's/ insertions(+)//g' res.csv
sed -i 's/ insertion(+)//g' res.csv
sed -i 's/ deletions(-)//g' res.csv
sed -i 's/ deletion(-)//g' res.csv

and either save it into git-logs-into-csv.sh file or just copy/paste into console.

I think it's relatively self-explaining but just in case:

  • --all takes logs from all branches
  • --since limits the number of commits we want to look at
  • --shortstat - to get some idea what was done in the commit
like image 20
avs099 Avatar answered Nov 15 '22 05:11

avs099