Git Bisect: Efficiently Debugging Code Regressions
Debugging for the bugs in the code is a difficult task especially when you have thousands of line codes and files in a project. In a developer’s life, there are countless scenarios where the specific feature of the code was working in the previous release. While in the new version, it stopped working. In such situations, Git offers the tool named bisect that permits the user appearance of the particular bug in the project release.
The outcome of this post is:
How to Debug Code Using Git Bisect?
As we know every contribution to the projects is stored in the Git log history. So, you can simply start the bisect mode in Git and specify the particular commits in which the code/feature was working. Then, tell Git to look for a bad version from that particular commit. Doing this will let you know about the particular commit where the problem has occurred. Just follow us in the below-mentioned steps to check this process.
Step 1: Go to Repository
Open Git Bash and go to the project repository using the “cd” command:
Step 2: Check the Project File
In our project directory “bisect”, there is a “file.txt” file having the 6 code commit lines as shown:
Step 3: Check the Log Status
To check the commit log history of the “code.txt” file, execute this command:
There are 6 commits in the file and currently, our HEAD is pointing to commit 6.
Step 4: Start Git Bisect
To debug the code, activate the bisect mode with the following command:
The bisecting mode has been turned on.
Step 5: Define Good Code
Suppose your code feature is not working at the current commit but you last tested the feature on the “commit 3” in which it was working. So, simply copy the SHA of commit 3 and specify it in the provided command as good:
The output shows that Git is waiting for the bad commit.
Step 6: Debug Code
Now, execute the following command to debug the code from commit 3 onward:
As you can see the issue appeared in commit 5.
Step 7: Check File
If we check the output of the file, it will be shifted to the commit 5 as shown below:
Step 8: Debug Code Again
Let’s assume that you are still getting the problem in the code and want to debug the code again. To do so, run this command:
Now, our head is shifted to commit 4. It means that the problem appeared in commit 4.
Step 9: Check File Again
Check the code file output using the “cat” command:
Our file content is replaced with commit 4.
How to Reset and Return From Bisecting Mode?
To reset and return from the bisecting mode, you can simply execute the “git bisect reset” command. Let’s have a quick look at the following in 2-steps.
Step 1: Reset Bisecting Mode
To reset the bisecting mode, run this command:
Step 2: Check File
Check the output of the file through the “cat” command:
The code file has been back in the latest format commit 6.
Conclusion
Git bisect is the tool in Git Bash for efficiently debugging the bug from the code. To do so, open Git bash and go to the project repository. After that, display the Git log history and select the SHA hash of the particular commit that you think the code successfully worked on. Then, declare that commit as good and run the “git bisect bad” command to debug. This tutorial has demonstrated the procedure to debug the code in the project.
Source: linuxhint.com