Get it All

Those of us who remember suffering through Subversion repository woes will remember our elation at finding Git. Things Subversion promised but never quite delivered were handled with ease when we got to Git. Merging changes? Updating branches? Rolling back changes?? All a snap.

But there are some subjects on which I confess I have adopted the “we’ll get to that particular voodoo later” attitude. One of those was figuring out what the difference between git merge and git rebase. I shan’t bore you with that whole story: Google answer-seekers, rejoice! Instead, here goes:

The difference between git rebase vs merge is the commit history.

If you rebase a branch from it’s source (feature branch from master, let’s say), none of the commits from the source branch will show up in the feature branch’s history. If you merge the two branches, you will have both branch’s commits in the source branch.

The result of merging therefore is a commit history that includes a lot of work that did not happen in the current branch. The result of rebasing is a commit history that does not include changes that have recently been added to the current branch from elsewhere. Both of these scenarios have advantages and disadvantages.

Rebase feature branches, merge master

Sure. There’s lots of nuance to this kind of broad-strokes pronouncement. I encourage you to read this article, which has so far been the best tutorial on the subject that I have read. But for brevity’s sake, in probably 90% of cases, the above statement is your best guide.

Feature branches should presumably have lots and lots of commits. Personally, every time I think I’ve got a feature or bug “fixed,” I end up committing that new change right away. Yes, it makes for a lot of logs. But it also means the exact moment when a file got changed is much more reliably pinpointed.

If I were to merge my master branch into my feature branch, I’d also have all the commits to master from other developers mixed up among my branch’s commits. File changes that have nothing to do with my feature would appear as their own logs. For this reason, I’d rather just have my feature branch focus on the work that I did, with commits that match.

When I bring changes from a feature branch into master, I actually do want the small changes and logs to appear in the master branch. I may need to track a specific file change, and the feature branch will soon be either destroyed or archived. Incorporating a feature branch’s commits helps me do that.

Git rebase vs merge: the advantage

I’m assured that feature branches contain logs that only concern that branch by rebasing changes from master into them. I am assured that all that work from all branches will be reflected in the master branch’s logs by merging changes into master.

Hopefully, this discussion of why you would use git rebase vs. merge was helpful. Do you have another theory for managing these two features? Please comment below!!


Come on in, Mr. Client. Have a seat.

I wanted to have a word with you about your website. You know, the massive data structure that combines text, audio, video and images all in the pursuit of explaining what it is you do and how your customers can find you. Yeah, that thing.

Does it not strike you as wholly silly to have an “About Us” page on such a thing? Isn’t the entire site, you know, about you? Is there something you really need your audience to know about you that isn’t somewhere else on the site? And is that a good idea?

Some conventions of the Internet exist almost completely without cause. They’re just things we’ve grown accustomed to seeing and feel weird about not having. The “About Us” page is top of that list, in my opinion. Unless you run something like a media site – and maybe not even then – there is nothing about you that doesn’t deserve equal time with the rest of your marketing content. In fact, your marketing content should be shot through with all those most important things about you that make you different. Or special. Or just happy to be alive. But it doesn’t belong on one lonely page that nobody will bother with.

Frequently, when designers I work with spec out pages, I’ll tell them to just kill the About Us page. Make an About link in the navigation if you have it, but link that to the front page. Why waste the effort on a vestigial page?

Let HolisticNetworking Help You Organize Your Site Today!

As a developer, I spend a lot of my time looking up the “next hottest thing” floating around in my industry. I install all manner of tools, APIs, SDKs and fixtures. I spend an afternoon – sometimes, even when there’s money to be made elsewhere – coding in a new language. And even if the product of an afternoon’s diligent coding is a spinning “Hello World” Javascript toy, I’m happy to have done it.

Because I do for my clients, many of whom want it. I do this to increase my company’s brand reputation. But the truth is, even if I was out of work I’d still just be looking. Because it’s awesome.

Having said all this, it is with distressing regularity that I find customers looking to launch their businesses into the 21st century in a single, colossal and above all, affordable leap. And on the other side of the coin, I meet clients with sites clogged by a decade’s worth of treasured “tools” and apps all aimed at selling niche markets niche products. In both of these cases, I feel, the vanity of “awesomeness” outweighs the purpose of a website: to communicate with an audience.

These thoughts come to me as I recall a recent meeting with a client who needed a complete rewrite of their website. After years of neglect, a conga line of underpaid junior programmers made the best of an increasingly bad situation. The result was a WordPress website that literally no one in the building could manage. Content had been hard coded into theme files, just to get it done. Plugins ran amok, conflicting with one another and using coding practices abandoned with PHP4. Worst of all, the site advertised for brands the site didn’t carry any longer and key features for customer capture were not reliably working.

But, my customer declared, they’d never be able to keep up with the websites of their competitors. Those sites had special apps aimed at giving the customer the right information right where they needed it. Those sites had fancy graphical elements and Flash applications that were meant to drive the customer toward setting up an appointment at a local store.

“But,” I asked, “does the site actually do any of that?

The answer was, of course, that we don’t know and can’t really know. Maybe all those fancy apps have gotten them tons of leads. Maybe they get the company absolutely no leads, but just look pretty cool. Regardless, the point is that you want the lead, not necessarily the toy.

The fact of the matter is that any customer who has visited your site – regardless if they’re “organic,” self-directed visitors or if they’ve followed a paid link somewhere – has already shown a tremendous amount of interest in your products. Certainly, if I type your website address into my browser, I’m already interested; followers of paid links have also made a choice to visit. You might not need to work so hard to get them to participate. Just ask nicely.

eCommerce websites have a harder job. Services sites like medical data portals or FedEx have a much harder job. But if you distill your business needs down to their essence, the purposes of a website may actually be shockingly few. Few, that is, but important. Stop chasing every cool new gadget and focus on your purpose.

I recall a book I read in my youth wherein a wizard tells his young acolyte that, “any gift that you can’t throw away is a trap.” The same rule applies to web sites. If some shiny thing that you own or want to own prevents you from tossing it aside to focus on your needs, it’s just getting in the way. It’s sapping resources while the real needs of your company go unanswered, either because you’re afraid to throw away a long-cherished toy or insisting on punching the square peg of your company’s business through the round hole of High Technology.

Start fresh!! Focus on the now. Identify your goals and quantify success. Simplicity is quite liberating, if you let it be.

Contact Holistic Networking now to find out how we can help!