As I mentioned earlier, I’m using GitHub as my version control system. I’m much more familiar with SVN, and although I never did understand it’s pecularities, I managed to sort most of them out myself.
I don’t really get Git, with its forks and its branches, and its pulls and its pushes. The internet advised me to make a new branch every time I develop something new so I don’t mess up the master branch/version/copy/whatever. So, I dutifully made a new branch for one bit of development, did a pull request, merged the branches, and deleted the branch so all I had left was the master.
When I was working on a particular thing, I created a branch off the master. After I’d started, I realised I needed to change something else first. I created another branch from the master and somehow merged in the changes from the master in Git Desktop.
When I tried to commit anything, I got a load of conflicts. I tried to fix them, but I couldn’t. I had to get Colin in to fix it, hence his Git post yesterday. For no discernible reason, Git refused to merge one branch into the master, so Colin told me to use that one for everything, and not to create any more.
But that branch bugged me — its name was relevant only to specific work on one feature. This morning, I resolved to get rid of it once and for all. Partly following the command line instructions provided by GitHub on the this-won’t-merge-but-if-you-do-this-it-will-merge page and partly being advised by a beginner’s guide to Git, I got to a point where I could merge the troublesome branch into the master. I typed the commit command, and on pressing enter, the command line changed into a Vim window. Terrific.
There was already a commit message created by Git; I didn’t need to edit it, but I did need to make Vim go away. Trouble was, I had no idea how to make Vim go away. I interrupted Colin to ask him how to make Vim go away. Colin told me some ridiculous string of keypresses; after entering them, Vim went away. Phew.
Then I continued with the Git command line stuff, and then, by some miracle, branch-bar merged into master with no conflicts and with all code as it should be. A triumph!
For the record, I won’t be making any more branches.