To download the exercise:
gitmastery-exercises folder.gitmastery download under-control command.Scenario:
Your task:
When you download a Git-Mastery exercise, the output will tell you which directory you need to cd into, for you to start the exercise:
Put the folder under-control/control-me under Git's control (i.e., initialise a repository in the control-me folder).
To verify your work:
gitmastery-exercises/under-control folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/under-control folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download stage-fright command.Scenario:
Your task:
The attendance repo has three unstaged files. Stage them.
To verify your work:
gitmastery-exercises/stage-fright folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/stage-fright folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download staging-intervention command.Scenario:
Your task:
In the repo intervention given, unstage the following files: adam.txt, josh.txt, mary.txt.
Keep other files staged.
To verify your work:
gitmastery-exercises/staging-intervention folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/staging-intervention folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download grocery-shopping command.Scenario:
Your task:
In the shopping-list repo given, there is a shopping-list.txt.
To verify your work:
gitmastery-exercises/grocery-shopping folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/grocery-shopping folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download log-and-order command.Scenario:
You are given a repo crime-spree (apparently, containing details of some crimes).
Your task:
log-and-order/answers.txt file to find the questions you need to answer.crime-spree repo to find the answers.answers.txt file.To verify your work:
gitmastery-exercises/log-and-order folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/log-and-order folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download remote-control command.Scenario:
Your task:
cd into the remote-control folder.gitmastery verify command..git at the end) when promptedhttps://github.com/johndoe/gitmastery-johndoe-remote-controlTo verify your work:
gitmastery-exercises/remote-control folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/remote-control folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download link-me command.Scenario:
Your task:
In the link-this repo provided, add the git-mastery/link-me repository as a remote named upstream.
To verify your work:
gitmastery-exercises/link-me folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/link-me folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download push-over command.Scenario:
Your task:
Create a new commit on the main branch of the local repo in push-this folder, and push the updated main branch to the remote.
To verify your work:
gitmastery-exercises/push-over folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/push-over folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download ignoring-something command.Scenario:
Your task:
1. Update the .gitignore file (inside the files/ folder) to reflect the following requirements:
many/ folder except the file many/file22.txt.why_am_i_hidden.txt should not be ignored by Git.ignore_me.txt should be ignored by Git.runaway.txt file in this/ and any of its current and future subfolders (hint: use a pattern).2. Commit the updated .gitignore file.
To verify your work:
gitmastery-exercises/ignoring-something folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/ignoring-something folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download fork-repo command.Scenario:
Your task:
Fork the repo https://github.com/git-mastery/gm-shapes to your GitHub account, while retaining the original repo name gm-shapes.
To verify your work:
gitmastery-exercises/fork-repo folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/fork-repo folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download clone-repo command.Scenario:
Your task:
gm-shapes.clone-repo/shapes (note how the target folder is shapes, not gm-shapes).shapes.upstream in that shapes repo, to point to the upstream repo git-mastery/gm-shapes.To verify your work:
gitmastery-exercises/clone-repo folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/clone-repo folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download fetch-and-pull command.Scenario:
Your task:
You have been given a clone of the git-mastery/gm-shapes repo.
main branch.
alice-upstream.bob-upstream.To verify your work:
gitmastery-exercises/fetch-and-pull folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/fetch-and-pull folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download side-track command.Scenario:
Your task:
While you are working on a small Python project in the branch-me repo, you discovered two bugs. You wish to fix them in a separate branch named bug-fix, as two separate commits.
The steps to follow are given below:
This repo uses main (not master) as the default branch.
bug-fix.greet.py file so that the greet function uses the name variable in the output, as follows:- print("Hi Alice")
+ print(f"Hi {name}")
Commit the changes.calculator.py file such that the add function returns the sum of two numbers, as follows: def add(a, b):
- return a - b
+ return a + b
Commit the changes.main branch.The final result should be something like this:
gitGraph BT:
%%{init: { 'theme': 'default', 'gitGraph': {'mainBranchName': 'main'}} }%%
commit id: "[HEAD → main] ..."
branch bug-fix
commit id: "Fix greet.py"
commit id: "[feature] Fix calculator.py"
checkout main
To verify your work:
gitmastery-exercises/side-track folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/side-track folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download branch-bender command.Scenario:
Your task:
Do the following operations in the given webapp repo, in the given order:
feature/login onto the main branch, while ensuring a merge commit is created (i.e., no fast-forwarding).feature/dashboard onto the main branch.feature/payments onto the main branch.The final result should look like this:
gitGraph commit branch feature/login checkout main branch feature/dashboard checkout main branch feature/payments checkout feature/login commit commit checkout main merge feature/login checkout feature/dashboard commit commit commit checkout main merge feature/dashboard checkout feature/payments commit commit checkout main merge feature/payments
To verify your work:
gitmastery-exercises/branch-bender folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/branch-bender folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download branch-forward command.Scenario:
You are writing the outline for a story. You now have two parallel storylines in two branches.
Your task:
Merge only the branch(es) that can be fast-forwarded. Use fast-forward merging.
Tip: Ensure you have switched to the destination branch before initiating the merge.
To verify your work:
gitmastery-exercises/branch-forward folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/branch-forward folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download merge-undo command.Scenario:
You are keeping notes on the characters of a play that you are writing. In the main story line (which is in the main branch), you introduced two characters, Rick and Morty. You had two other characters in two separate branches daughter and son-in-law. Just now, you introduced these two characters to the main story line by merging the two branches to the main branch.
gitGraph BT:
commit id: "Add Rick"
branch daughter
branch son-in-law
checkout daughter
commit id: "[daughter] Add Beth"
checkout son-in-law
commit id: "[son-in-law] Add Jerry"
checkout main
commit id: "Add Morty"
merge daughter id: "Merge daughter"
merge son-in-law id: "[HEAD → main] Merge son-in-law"
However, now you realise this is premature, and wish to undo that change.
Your task:
Undo the merging of branches son-in-law and daughter. The result should be as follows:
gitGraph BT:
commit id: "Add Rick"
branch daughter
branch son-in-law
checkout daughter
commit id: "[daughter] Add Beth"
checkout son-in-law
commit id: "[son-in-law] Add Jerry"
checkout main
commit id: "[HEAD → main] Add Morty"
To verify your work:
gitmastery-exercises/merge-undo folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/merge-undo folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download conflict-mediator command.Scenario:
Your task:
The given repo conflict has an unmerged branch josh and a merged branch john.
Merge branch josh onto main. This will result in a merge conflict in the script.py file.
Resolve the merge conflict and complete the merge.
The intended outcome is print('Hello Everyone and World!').
To verify your work:
gitmastery-exercises/conflict-mediator folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/conflict-mediator folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download branch-rename command.Scenario:
In the rename-this repo, you have been working on the login feature for your application on the branch login. On second thoughts, you now wish you had named it feature/login, to indicate the category of work done in the branch.
gitGraph BT:
commit id: "m1"
commit id: "m2"
branch login
commit id: "b1"
checkout main
commit id: "[HEAD → main] m3"
checkout login
commit id: "[login] b2"
Your task:
In the rename-this repo, rename the login branch to feature/login.
Expected result:
gitGraph BT:
commit id: "m1"
commit id: "m2"
branch feature/login
commit id: "b1"
checkout main
commit id: "[HEAD → main] m3"
checkout feature/login
commit id: "[feature/login] b2"
To verify your work:
gitmastery-exercises/branch-rename folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/branch-rename folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download branch-delete command.Scenario:
In the delete-my-branches repo, you were trying out two alternative optimisation approaches in two parallel branches optimization-approach-1 and optimization-approach-2, to decide which one is better.
You decided that the approach in the branch optimization-approach-1 is better and merged it. As the work has already been merged, you can now delete that branch to reduce clutter.
gitGraph BT:
commit id: "Implement loading"
commit id: "Fix loading bug"
branch opt...approach-1
commit id: "Apply bubble sort"
commit id: "[opti...-1] Fix sorting bug"
checkout main
branch opt...approach-2
commit id: "[opti...-2] Apply merge sort"
checkout main
merge opt...approach-1 id: "[HEAD → main] Merge ...'...approach-1"
Since you no longer need the work done in the branch optimization-approach-2, you can discard it by deleting the branch.
Your task:
optimization-approach-1 branch.optimization-approach-2 branch as well.Expected outcome:
gitGraph BT:
commit id: "Implement loading"
commit id: "Fix loading bug"
branch _
commit id: "Apply bubble sort"
commit id: "Fix sorting bug"
checkout main
merge _ id: "[HEAD → main] Merge ...'...approach-1"
To verify your work:
gitmastery-exercises/branch-delete folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/branch-delete folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download mix-messy-docs command.Scenario:
You are writing user documentation for a product. You have already written documentation for a few new features, each in a separate branch. You wish to accumulate this work in a separate branch called development until the next product release.
gitGraph BT: commit id: "Add features.md" commit id: "Mention feature for creating books" tag: "v10" branch feature-search branch feature-delete branch list checkout feature-delete commit id: "Mention feature for deleting books" checkout feature-search commit id: "Mention feature for searching books" checkout feature-delete commit id: "Add missing period" checkout main commit id: "Fix phrasing of heading" checkout feature-search commit id: "Add more details on the search feature" checkout list commit id: "Add partial docs for listing books"
Your task:
development, starting from the commit tagged v1.0feature-search branch onto the development branch, without using fast-forwarding (i.e., create a merge commit). Delete the feature-search branch.feature-delete branch onto the development branch. Resolve any merge conflicts -- in the features.md, the delete feature should appear after the search feature (see below). Delete the feature-delete branch.# Features
## Create Book
Allows creating one book at a time.
## Searching for Books
Allows searching for books by keywords.
Works only for book titles.
## Deleting Books
Allows deleting books.
list branch is not yet ready to be merged but rename it as feature-list, to be consistent with the naming convention you have been following in this repo.Expected final result:
gitGraph BT: commit id: "Add features.md" commit id: "Mention feature for creating books" tag: "v10" branch deleted-feature-search branch deleted-feature-delete branch feature-list branch development checkout deleted-feature-delete commit id: "Mention feature for deleting books" checkout deleted-feature-search commit id: "Mention feature for searching books" checkout deleted-feature-delete commit id: "Add missing period" checkout main commit id: "Fix phrasing of heading" checkout deleted-feature-search commit id: "Add more details on the search feature" checkout feature-list commit id: "Add partial docs for listing books" checkout development merge deleted-feature-search merge deleted-feature-delete
To verify your work:
gitmastery-exercises/mix-messy-docs folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/mix-messy-docs folder and run the gitmastery progress reset command.
To download the exercise:
gitmastery-exercises folder.gitmastery download mix-messy-graph command.Scenario:
You are writing user documentation for a product. You have already written documentation for a few new features, each in a separate branch. You have merged the feature-search branch.
gitGraph BT: commit id: "Add features.md" commit id: "Mention feature for creating books" tag: "v10" branch feature-search branch feature-delete branch list checkout feature-delete commit id: "Mention feature for deleting books" checkout feature-search commit id: "Mention feature for searching books" checkout feature-delete commit id: "Add missing period" checkout main commit id: "Fix phrasing of heading" checkout feature-search commit id: "Add more details on the search feature" checkout list commit id: "Add partial docs for listing books" checkout main merge feature-search id: "Merge search feature"
At this point, you realise this way of merging can result in a complicated revision graph. Instead, you wish to merge these changes in a way that results in a simple linear revision graph.
Your task:
Undo the merging of feature-search.
Squash-merge the feature-search branch onto the main branch with the commit message Add the search feature. Delete the feature-search branch.
Similarly, squash-merge and delete the feature-delete branch with the commit message Add the delete feature, while resolving any merge conflicts -- in the features.md, the delete feature should appear after the search feature (expected content given below):
# Features
## Creating Books
Allows creating one book at a time.
## Searching for Books
Allows searching for books by keywords.
Works only for book titles.
## Deleting Books
Allows deleting books.
The list branch is not needed, as you have decided not to have that feature. Delete that branch.
The resulting revision graph should be as follows:
gitGraph BT: commit id: "Add features.md" commit id: "Mention feature for creating books" tag: "v10" commit id: "Fix phrasing of heading" commit id: "Add the search feature" commit id: "Add the delete feature"
To verify your work:
gitmastery-exercises/mix-messy-graph folder (or any sub-folder of it).gitmastery verify command.To reset the exercise and start over, navigate to the gitmastery-exercises/mix-messy-graph folder and run the gitmastery progress reset command.