Sometimes git-bisect is the right tool, and if you don’t have any familiarity with it, you might not use it when you should. Here are two strategies I’ve found helpful.
Git merging preserves git history and does a 3-way merge between the branches being merged and the last common branch. Git rebasing replays new commits on top of master.
Reduce merge conflicts & improve collaboration with a minimal git branching approach – 4 pragmatic git strategies to help you spend more time writing code.
Avoiding lost code is one of the major benefits of version control, so using Git features that might cause data loss should only be done with careful consideration.
Beneath the command-line syntax, Git isn't as complicated as it seems. Many issues are easier to resolve when you first understand the underlying structure.