Exercise - Investigating the repository

This is about finding out what is in a repository.

Tips

  • git log shows all commits that are in the current branch.
    • --oneline makes the output more compact.
  • git show <some-commit> shows details about a commit
  • With ~ you can address predecessors of a commit, e.g. HEAD~2 is the predecessor of the predecessor of HEAD.
  • git branch and git tag list existing branches and tags.
  • With git switch <branch-name> you can switch to other branches.
  • With git switch --detach <commit> you can switch to any version.
  • With git restore -s <commit> -- <file-or-path> you can get contents of any version of files/paths into the workspace. It does not switch to the specified commit, but only fetches file contents into the workspace. The affected files are displayed as modified and can be committed.

Setup

In the repo directory, a Git project is waiting to be examined.

Step 0 - START

$ cd repo


Step 1 - Show branches

Start in directory git-uebungen/aufgaben/<unknown>.

Show which branches exist. Now show the commit graph across all branches.

Step 2 - Switch branch

Start in directory git-uebungen/aufgaben/<unknown>.

Switch to the feature-a branch. Look at the content of the bar file in the foo directory. Switch back to main.

Step 3 - Show tags

Start in directory git-uebungen/aufgaben/<unknown>.

Show all tags.

Step 4 - ⭐ Investigate contents of past versions

Start in directory git-uebungen/aufgaben/<unknown>.

Show which files exist in the workspace. Show which files existed in the previous commit. Switch to the previous commit and examine what the workspace looks like then.

Then switch back to main.

Step 5 - ⭐ Restore old state of a single file.

Start in directory git-uebungen/aufgaben/<unknown>.

The file hallo-welt was edited after release1.0. The customer does not like it. Restore the old state with a new commit.

repo $ cd ..


To the solution

To the overview