Back to Git & Dev Tools
2026-04-075 min read

git-last-modified[1] (Git & Dev Tools)

Learn git-last-modified[1] (Git & Dev Tools) step by step with clear examples and exercises.

Why This Matters

In the world of software development, maintaining an organized and up-to-date repository is essential for efficient collaboration, debugging, and version control. The git-last-modified command serves as a valuable tool in this regard, offering developers a quick overview of when each file within a Git repository was last modified. This guide will delve deeper into the importance of this command, its prerequisites, usage, common mistakes, practice questions, and frequently asked questions.

The Importance of Tracking File Modifications

Understanding the evolution of your project's source code is crucial for developers. git-last-modified simplifies this process by providing a concise summary of when each file was last modified. This information can be invaluable during debugging, version control, or collaborative work.

Prerequisites

To fully grasp the intricacies of git-last-modified, you should have a solid foundation in:

  1. Git: Familiarity with fundamental Git commands such as git init, git add, git commit, and git pull.
  2. GitHub: Basic knowledge of using Git repositories on GitHub.
  3. Command Line: Comfortable navigating the command line, particularly on Unix-based systems.
  4. Basic Understanding of Git Commands: Familiarity with concepts such as branches, merges, and rebasing will help you better understand how git-last-modified interacts with your repository.

Core Concept

git-last-modified displays which commit last modified each file and subdirectory within your repository. It takes both file renaming and mode changes into account as significant events.

git last-modified --recursive --show-trees

The --recursive option enables git-last-modified to traverse into all subtrees, while the --show-trees option exhibits tree entries even when delving into them. By default, the command shows only tree entries that correspond with the specified pathspec without venturing into subtrees.

How Git-Last-Modified Works

When you execute git last-modified, it retrieves the commit history of your repository and compares each commit's tree (a snapshot of all files in a specific state) to determine which files were modified or added since the previous commit. It then outputs this information, including the commit hash, author, date, and file path.

Example

Imagine you have a Git repository containing two files: file1.txt and file2.txt. You've made numerous commits, and you wish to determine when each file was last modified.

git last-modified --recursive --show-trees

Output:

commit <hash1> (author) (date)
file1.txt

commit <hash2> (author) (date)
file2.txt

In this example, ` and ` represent the commit hashes for the respective modifications.

Worked Example

Let's walk through an example where we create a new Git repository, make changes to files, and employ git-last-modified to track those changes.

Initialize a new Git repository

$ mkdir my_repo && cd my_repo

$ git init

Create two files

$ touch file1.txt file2.txt

Make initial commit

$ git add .

$ git commit -m "Initial commit"

Modify file1.txt and file2.txt

$ echo "Hello World" > file1.txt

$ echo "Goodbye World" > file2.txt

Commit the changes

$ git add .

$ git commit -m "Modified files"

Use Git Last-Modified to see when each file was last modified

$ git last-modified --recursive --show-trees


Output:

commit (author) (date)

file1.txt

commit (author) (date)

file2.txt

Common Mistakes

1. Overlooking the --recursive Option

If you fail to use the --recursive option, git-last-modified will only show tree entries that match the specified pathspec without descending into subtrees.

Solution:

Always include the --recursive option to ensure that git-last-modified traverses all subtrees and shows all relevant changes.

git last-modified --recursive --show-trees

2. Misinterpreting Output Format

The output of git-last-modified includes commit hashes, author names, dates, and file paths. It's essential to comprehend this format to effectively use the command.

Understanding the Output Format

Each line in the output represents a modified or added file in your repository. The information provided on each line includes:

  1. Commit Hash: A unique identifier for the commit that made the modification.
  2. Author: The person who authored the commit.
  3. Date: The date and time when the commit was made.
  4. File Path: The path to the file within your repository that was modified or added.

Practice Questions

  1. Given a repository with multiple subdirectories, how can you find out when each file was last modified using git-last-modified?
git last-modified --recursive --show-trees
  1. You've made changes to several files in your repository and want to see when each one was last modified. What command should you run, and what information will it provide?
git last-modified --recursive --show-trees
  1. During a project, you notice that some files have not been touched for a long time. How can you use git-last-modified to identify these stale files?
git last-modified --reverse --recursive --show-trees | head -n 10

This command will display the 10 oldest modified files in your repository.

FAQ

Q: Is git-last-modified a standard Git command?

A: No, git-last-modified is an experimental command and may change in future versions of Git. However, it's widely used by developers for its convenience and usefulness.

Q: Can I use git-last-modified with GitHub?

A: Yes, you can use git-last-modified with any Git repository, including those hosted on GitHub.

Q: How does git-last-modified handle file renames?

A: git-last-modified considers both file renaming and mode changes as significant events when determining when a file was last modified. It will show the most recent commit that touched the current file name or its predecessor if it was renamed.

Q: How can I use git-last-modified to find out when a specific file was first added to the repository?

A: To find out when a specific file was first added, you can use the following command:

git log --oneline -n 1 -- <file_path>

This command will display the commit hash of the first commit that introduced the specified file.

git-last-modified[1] (Git & Dev Tools) | Git & Dev Tools | XQA Learn