A Guide To Merging (Based in Git)

In the previous post, I gave a working definition of branching (based on Git’s model of source control) and provided a conceptual model that I hope makes it easier to understand what’s happening whenever you branch code from the master branch of the application.

The thing about creating branches is that they’re typically merged back into the main application once a feature has been completed, a bug has been resolved, or something has been patched.

If branching is taking a copy of the code and creating an independent sandbox out of which to work on the program, then merging is the opposite – it’s taking the code from the branch and pushing it back into the main part of the application.

Continue reading “A Guide To Merging (Based in Git)”

A Guide To Branching (Based in Git)

Whenever we introduce others to a new technology, service, application, or anything else, I think that we – as developers – don’t often do such a hot job of showcasing what the true “beginner-level” features are.

That is, we’re either so enamored at what we’re working with, that we’re eager to show what we’re able to do or we skip to more complicated things without explaining the foundation off of which said things have been built.

Maybe I’m off base, but one of the places I’ve seen this crop up in a few conversations is around the idea of Git branching and merging.

That is to say, I’ve had others ask specifically about understanding what a branch is and what a merge does.

For those who have worked with other source control systems, these terms are taken for granted, but for those who are just getting their feet wet and who are hopping into development (even if it’s with Subversion and its branches directory), these are concepts that seem to be glossed over in an attempt to get to more of the “exciting” parts of source control.

At least, as exciting as it can really get.

Continue reading “A Guide To Branching (Based in Git)”

Quick Tip: Disable Auto-Updating of CodeKit Settings

CodeKit Icon

When it comes to CodeKit, there are normally global CodeKit settings that I use; however, a number of the projects that I work on often result in some minor deviation from my core settings.

For those who have used CodeKit regularly, you know that you can set per-project settings, but if you’re using a project that’s under source control, there’s likely one irritating factor that you’ve noticed.

Continue reading “Quick Tip: Disable Auto-Updating of CodeKit Settings”

Using Kaleidoscope For a Git Diff Tool

In a previous post, I’ve mentioned that GitBox is my git client of choice. In short, I think it’s UI is simple and it’s extremely easy to manage all of the standard git tasks.

GitBox

And, of course, if you find yourself needing to issue some commands from the command line, it’s really easy to install git for the command line.

But for anyone that’s done an any amount of work with source control, you know that a portion of your time is resolving merge conflicts and sifting through code using a diff tool to help manage the merging.

Though there’s a lot of good options available, the latest version of Kaleidoscope has become my favorite application for managing code diffs. After installing it, here’s how you can configure it for your environment.

Continue reading “Using Kaleidoscope For a Git Diff Tool”

WordPress Source Control: Commit Messages

Got Commit

Although Automattic uses Subversion for source control both for its themes and plugins, I keep a number of my plugins in Git repositories during development.

Additionally, 8BIT uses GitHub to keep track of all of our source code, issues, milestones, and so on. When it’s time to make a commit, we usually sync the Git repository with its Subversion equivalent.

I’ve used a number of different source control systems during my career – some distributed, some not – and I’ve never been someone who fights a so-called religious war over which is better. Each source control system has its advantages, disadvantages, and each one fits differently within the context of how a person or a team operates.

Currently, I really like Git but a lot of that has to do with how GitHub, the site, fits into my workflow. Sure, there are things about Git that I like, but it’s GitHub’s organization that fits how I do work.

Anyway, overtime I figured I’d discuss my thoughts on WordPress source control. In this post: commit messages.

Continue reading “WordPress Source Control: Commit Messages”