- Git
- Go
- Mac:
brew install go
Homebrew or visit Go - Windows:
choco install go
Chocolatey - Linux:
sudo apt-get install golang-go
- Mac:
- Click on the
Fork
button on the top right corner of this page fork the repository to your own GitHub account
- Clone the forked repository to your local machine
git clone <your-forked-repository-url>
- Create a new branch from the
main
branch e.g.maithai-feature
- Checkout to the new branch
- Edit the
CONTRIBUTORS.md
file by adding your name to theContributors
section git status
to see status of the changesgit diff
to see the changes- Add the changes to the staging area
git diff --staged
to see the changes in the staging area- Commit the changes
- Checkout to the
main
branch - Merge the new branch to the
main
branch - Push the changes to the remote repository at main branch verify by using
git log --graph --oneline
. You should see the commit history like below:
* commit C (main): Merge branch 'maithai-feature'
|\
| * commit B (maithai-feature): Implement feature Maithai
|/
* commit A: Initial project setup
Hint Challenge 1 (try it your self first before open this hint)
- Create a new branch from the
main
branch e.g.maithai-feature
git branch maithai-feature
- Checkout to the new branch
git checkout maithai-feature
- Edit the
CONTRIBUTORS.md
file by adding your name to theContributors
section - Commit the changes
git add CONTRIBUTORS.md
git commit -m "Add my name to the Contributors section"
- Checkout to the
main
branch
git checkout main
- Merge the new branch to the
main
branch
git merge maithai-feature --no-ff
- Push the changes to the remote repository at main branch
git push origin main
- Create a new branch from the
main
branch e.g.monkan-feature
- Checkout to the new branch
- Edit the
CONTRIBUTORS.md
file by adding your name to theContributors
section git status
to see status of the changesgit diff
to see the changes- Add the changes to the staging area
git diff --staged
to see the changes in the staging area- Commit the changes
- Push the changes to the remote repository at the new branch
- Create a Pull Request from the new branch to your
main
branch (⚠️ Create PR for your repository) - Merge the Pull Request
- Pull the changes from the remote repository at the
main
branch - Verify by using
git log --graph --oneline
. You should see the commit history like below:
* commit E (HEAD -> main, origin/main): Merge pull request #1 from <your-github-username>/monkan-feature
|\
| * commit C (monkan-feature): Implement feature Monkan
|/
* commit C (main): Merge branch 'maithai-feature'
|\
| * commit B (maithai-feature): Implement feature Maithai
|/
* commit A: Initial project setup
Hint Challenge 2 (try it your self first before open this hint)
- Create a new branch from the
main
branch e.g.monkan-feature
git branch monkan-feature
- Checkout to the new branch
git checkout monkan-feature
- Edit the
CONTRIBUTORS.md
file by adding your name to theContributors
section - Commit the changes
git add CONTRIBUTORS.md
git commit -m "Add my name to the Contributors section"
- Push the changes to the remote repository at the new branch
git push origin monkan-feature
- Create a Pull Request from the new branch to the
main
branch - Merge the Pull Request
- Pull the changes from the remote repository at the
main
branch
git pull origin main
Don't worry if you are not familiar with Go. You can still complete this challenge by following the guide below.
- Checkout to the
main
branch - Go to challenge3 directory
cd challenge-3-feature-toggle
directory go run main.go
ormake go-run
and verify the result. You should see Sending via SMS.
Email notification feature toggle is DISABLED
Sending SMS to 0812345678: Hello, Go!
⚠️ Unable to run the code?- Install Go by following the Prerequisites section
go version
to verify that Go is installed
- Enable the Email feature by changing
isEmailEnabled
inside themain
function to betrue
- Verify the result make sure the email notification is sent to the email address that you specified by using
make go-run
then see the result. - Commit the changes on the
main
branch - Push the changes to the remote repository at the
main
branch verify by usingmake go-run
. You should see the email notification is sent to the email address that you specified
Email notification feature toggle is ENABLED
Sending email to [email protected]: Hello, Go!
Hint Challenge 3 (try it your self first before open this hint)
- Checkout to the
main
branch
git checkout main
- Go to challenge3 directory
cd challenge-3-feature-toggle
directory - Enable the feature by changing the
isEmailEnabled
inside themain
function to betrue
- Verify the result make sure the email notification is sent to the email address that you specified
make go-run
- Commit the changes on the
main
branch
git add main.go
git commit -m "Enable email notification feature toggle"
- Push the changes to the remote repository at the
main
branch
git push origin main
- Checkout to the
main
branch - Create a new tag e.g.
v1.0.0
- Push the tag to the remote repository
- Verify by using
git tag
. You should see the tag that you created or look at the GitHub repository tag section
v1.0.0
Hint Challenge 4 (try it your self first before open this hint)
- Checkout to the
main
branch
git checkout main
- Create a new tag e.g.
v1.0.0
git tag -a v1.0.0 -m "Release version 1.0.0 : send email notification"
- Push the tag to the remote repository
git push origin --tags
- Checkout to the
main
branch - Show the commit history
- Pick the commit hash that you want to revert
- Revert the commit (Preserve the history)
Hint Challenge 5 (try it your self first before open this hint)
git revert <commit-hash>
- Delete
maithai-feature
andmonkan-feature
branch - Push the changes to the remote repository
Hint Challenge 6 (try it your self first before open this hint)
git branch -d maithai-feature
git push origin --delete maithai-feature
git branch -d monkan-feature
git push origin --delete monkan-feature