Unlocking Git Insights: Analyzing Repository Stats with Shell Scripts

CellCS
3 min readJan 13, 2024

--

Managing a Git repository efficiently involves more than just commits and pushes. Understanding the project’s evolution, tracking code changes, and recognizing contributors’ efforts are crucial aspects. In this post, a set of shell scripts is explored that unveil comprehensive statistics from a Git repository, enabling you to gain deeper insights into your project.

The provided shell script gitstats.shempowers you to extract Git statistics effortlessly. Just copy this script file into your git repository folder. Before diving into the details, let's go through the main functionalities:

Default Usage: Running sh gitstats.sh without any parameters displays statistics from the first commit to the latest one.

Specifying Date Range: You can narrow down the analysis by providing start and end dates: sh gitstats.sh sincedate untildate. Alternatively, you can use just the start date: sh gitstats.sh sincedate. (Note: sincedate and untildate format is yyyy-mm-dd. )

The script leverages functions to calculate the number of days between the project’s first and latest commit. It then extracts information about the first and last commit dates and displays them.

You have the flexibility to customize the analysis period by specifying start and end dates. The script seamlessly converts these dates into Unix timestamps for accurate processing.

Example:

sh gitstats.sh

sh gitstats.sh 2024-01-01

sh gitstats.sh 2024-01-01 2024-01-10

Key Git Statistics Displayed:

  1. Total Code Lines Tracked By Git: Calculates the total number of lines changed in the repository within the specified date range.
  2. Total Code Stats By Git: Provides a detailed overview, including files changed, lines added, lines deleted, total lines, and add/delete ratio.
  3. Contributors: Lists contributors and their commit counts within the defined date range.
  4. Git Stats per Contributor: Breaks down statistics for each contributor, showcasing their impact on the codebase.
  5. Project Timeline: The script concludes by displaying the project’s first commit date, the most recent commit date, and the total number of days the project has been active.

With sincedate and untildate parameters in command:

Expanding Analysis with Additional Parameters: While the default usage and date range specification cover fundamental Git statistics, the gitstats.sh script is flexible enough to accommodate additional parameters, allowing users to tailor the analysis according to their specific needs. These parameters could include filtering by author ( — author=”???”), analyzing a specific file or directory (path/to/file_or_directory), and granular commit details with git log. Feel free to experiment with different combinations of parameters to extract the exact Git insights you’re looking for!

Understanding your Git repository’s dynamics is crucial for effective project management. With the provided shell script, you can effortlessly gather comprehensive statistics, empowering you to make informed decisions about your project’s development.

Unlock the power of Git insights with these shell scripts, and let data guide your next steps in project management!

Reference:

  1. Source Code: https://github.com/CellCS/GitStats/blob/main/gitstats.sh
  2. Git Doc: https://git-scm.com/docs/git-show

--

--

CellCS

Software Engineer | Data, DevOps, AI Engineer | Health Tech Innovator | Researcher