So I decided to create a branch in Git to implement a nice new feature and after about a week or so, I get to a section of code that was shared with my cohort and course changes were made that I wanted. So I figured, “This is what Git is good at, right?”
In theory yes, but still coming from Subversion it took a lot of pain and many tools to figure out how to get it working.
I attempted to “Rebase” from subversion unsuccessfully many times as when conflicts were discovered, the progress bar just kept spinning and spinning and spinning. So while testing I corrupted my local code base… many times over. I literally cloned from the safe point about 4 times before I finally got it right.
I used the Git/Git-bash tool to initiate the rebase doing
git checkout MyAwesomeBranchOrSoIThought
git rebase master
Now it would stop midway and mention to fix the conflicts before resuming… well.. the bash utility is, in my opinion, not the best visual merge tool, so I went to the TortoiseGit to resolve the conflicts. After each conflicted file was resolved, I then went back to Git-bash and ran
git rebase –continue
All the way until it finally completed and then sure enough it finally made it all the way through. Once that was done, I went back into VS, where we use Microsoft’s TFS Git provider to sync the last change set.
Painful, but hopefully the UI tools mature to the point where I no longer have to go back to Git-bash.