I remember, that when I was recruiting juniors to my organization, I was often wondering: “Why do all of them know every basic git command from official manual, but they can’t combine them together?”. The answer turned out to be simple: lack of real world example. People often learn git by themselves, whereas its true power can only be seen when working in a team, where branches are constantly updated with new commits and you have to keep up.
Articles like this one give you a great overview, but they lack an insider view from somebody, who tackles problems with commits, branches and merges on a daily basis. That’s why today, I want to describe real scenarios from my world with basic git commands. No more “topic” branches or commits named A, B or C. Take a look at what real devs do daily and try to guess the proper git command, which you probably already know (you’ll find answers at the end of the article). Let’s go!
If you feel you get the basics, I have a special article for you called “5 Git Commands to Know Just After You Get the Basics”. I’m sure you’ll like it!
Git Command Riddle #1
I’ve just arrived to my office. I’m saying “hi” to my colleagues and then I open my laptop. The first thing I want to do is check what new branches and commits did other devs push to our repository, since last time I’ve checked it. What command should I input to console?
Git Command Riddle #2
Oh, somebody pushed new commits to the main branch called develop. I’m currently on a different branch, so let me first switch it. What command should I use to change branch to develop?
Git Command Riddle #3
So my task for today is to implement a new app feature. To start, I need to create a new branch from develop, but I don’t want to do this when it’s still outdated (as I mentioned previously, new commits were pushed). How can I integrate new changes from remote repository to my local project copy?
Git Command Riddle #4
Now let’s create a new branch called feature/MB-100. The code MB-100 represents id of a ticket in JIRA (issue and project progress tracking software very commonly used in IT). How can I do it?
Git Command Riddle #5
Few hours passed and I made some progress. I created a basic feature screen and added presentation logic. Time for lunch! But first, let’s save my work. How?
Git Command Riddle #6
It’s 6 PM already and I’m still struggling...God, I haven’t made a commit for the last few hours. Let’s first see what files I’ve managed to change so far compared to the last time I saved my work. Into terminal I’m writing...
Git Command Riddle #7
Two more days passed and I finished entire feature. My pull request is accepted and I can safely merge feature/MB-100 to develop. I can’t forget to upload new develop to remote repository afterwards! Can you guess which commands I will use?
Git Command Riddle #8
Now it’s time for release! I haven’t figured out how to automatically generate changelog for my client, so I have to manually write release notes. The history of commits should help me. How can I access it?
git checkout develop
git pull origin develop
git checkout -b feature/MB-100
git branch feature/MB-100
git checkout feature/MB-100
git commit -am “Added basic screen and presentation logic”
git checkout develop
git merge feature/MB-100
git push origin develop