Skip to main content

Viewing and understanding files

Explore file content and trace changes over time to understand a new codebase and its evolution.

GitHub provides tools to view raw content, trace changes to specific lines, and explore how a file’s content has evolved over time. These insights reveal how code was developed, its current purpose, and its structure, helping you contribute effectively.

Viewing or copying the raw file content

With the raw view, you can view or copy the raw content of a file without any styling.

  1. On GitHub, navigate to the main page of the repository.

  2. Click the file that you want to view.

  3. In the upper-right corner of the file view, click Raw.

    Screenshot of a file. In the header, a button, labeled "Raw," outlined in dark orange.

  4. Optionally, to copy the raw file content, in the upper-right corner of the file view, click .

Viewing the line-by-line revision history for a file

Within the blame view, you can view the line-by-line revision history for an entire file.

Tip

On the command line, you can also use git blame to view the revision history of lines within a file. For more information, see Git's git blame documentation.

  1. On GitHub, navigate to the main page of the repository.

  2. Click to open the file whose line history you want to view.

  3. In the upper-right corner of the file view, click Blame to open the blame view.

    Screenshot showing the header for a file. The "Blame" button is outlined in dark orange.

  4. To see earlier revisions of a specific line, or reblame, click until you've found the changes you're interested in viewing.

    Screenshot of the "Blame" view of a file. To the right of a commit message, the versions icon is outlined in dark orange.

Ignore commits in the blame view

All revisions specified in the .git-blame-ignore-revs file, which must be in the root directory of your repository, are hidden from the blame view using Git's git blame --ignore-revs-file configuration setting. For more information, see git blame --ignore-revs-file in the Git documentation.

  1. In the root directory of your repository, create a file named .git-blame-ignore-revs.

  2. Add the commit hashes you want to exclude from the blame view to that file. We recommend the file to be structured as follows, including comments:

    # .git-blame-ignore-revs
    # Removed semi-colons from the entire codebase
    a8940f7fbddf7fad9d7d50014d4e8d46baf30592
    # Converted all JavaScript to TypeScript
    69d029cec8337c616552756310748c4a507bd75a
    
  3. Commit and push the changes.

Now when you visit the blame view, the listed revisions will not be included in the blame. You'll see an Ignoring revisions in .git-blame-ignore-revs banner indicating that some commits may be hidden:

Screenshot of the blame view for the "ipc-main-internal.ts" file. A blue banner states that the information is "Ignoring revisions in .git-blame-ignore-revs." The link to the .git-blame-ignore-revs file is outlined in dark orange.

This can be useful when a few commits make extensive changes to your code. You can use the file when running git blame locally as well:

git blame --ignore-revs-file .git-blame-ignore-revs

You can also configure your local git so it always ignores the revs in that file:

git config blame.ignoreRevsFile .git-blame-ignore-revs

Bypassing .git-blame-ignore-revs in the blame view

If the blame view for a file shows Ignoring revisions in .git-blame-ignore-revs, you can still bypass .git-blame-ignore-revs and see the normal blame view. In the URL, append a ~ to the SHA and the Ignoring revisions in .git-blame-ignore-revs banner will disappear.