Refactoring Code && Git Rebase




Refactoring Is a Lifesaver

First of all, when we write code, we have to think about making the software work. Then we can can change the messy parts of the code. I refactored the code
in my repo. I squashed all commits into one commit and I pushed to origin via git push origin main. I will talk about my Git journey later in this blog.



Code Readability

I used to think that everybody could understand my code, but it doesn’t work like that. I even forget what I wrote. Therefore, it is better to keep code clean and readable. Firstly, I created refactoring branch git checkout -b refactoring in order to avoid touching the working code. I started with main module. I moved config logic from main to config_manager module. Later, I opened renderer module because I had a gut feeling that something is wrong with this module. I suddenly saw that for --help, -h and --version, -v features , I saw writing help and version messages in this module. I created two function showHelp() showVersion in utils module to handle them properly. I also removed unnecessary comments because for making changes straightforward later. Then, I changed magic numbers to constexpr constants and I changed function names to be more descriptive. Also, I removed unnecessary libraries from modules.
For all the steps above, were distributed into 3 commits and worked step by step on the refacotring branch.



Git Journey

As usual, I created a branch using git checkout -b refactoring and while making changes, I made commits using git commit -m . While doing that, I used git --amend -m for changing the message because I used a poor message in commit. After finishing the code refactoring, by mistake I switched to main branch using git checkout main and i did fast forward merge via git merge --ff-only refactoring. Boom! I forgot to squash, but fortunately, I realized it had not been pushed yet, so I used git reset --hard . Then, I changed to the refactoring branch and used git rebase -i, replacing 2 pick commits with squash to merge them into the first commit. To clarify my refactoring message, I used git commit --amend and rewrote it. I then switched back to the main branch and executed git merge --ff-only refactoring. The fast-forward merge succeeded, and just like that, my messy commit history was transformed into one clean commit. Crisis Ended!



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *