So here’s the deal. My hosting company of choice, WP Engine, has a git service built into all of their websites. This is pretty cool. But I’ve got to be honest with you – I have had a hell of a time getting it to work properly.
Admittedly, part of the problem is me. I am a git beginner, with just under 3 months of hardcore git usage under my belt. I regularly screw my local repositories up. 🙂 But I also have about 40 different remote git repositories that I manage and collaborate with teams on a daily basis on both Github and Bitbucket.
But part of the problem has been WP Engine. Their support on git-related matters has been horrible. I was unable to get any helpful answers to my git questions either via live chat support or ticket support. One member of the WP Engine team even told me, point blank, “We don’t support git” – a statement that both my sales rep and WP Engine’s Twitter account denied. Nonetheless, their support on git questions has been downright horrid.
The good news is that after I invested about 20 hours on the matter, I can now safely and consistently push my local git repositories out to WP Engine. The bad news is that it took a shit ton of time to figure it all out.
Here are the basics. Some of what I am about to tell you are git basics, and some are WP Engine+git basics.
- You need to generate an SSH key on your computer. To do this, follow steps #1-3 here. Step #3 will actually copy your SSH key to your clipboard (for pasting later).
- Set up the git user on the WP Engine dashboard. NOTE: You only need one git user for ALL of your sites. I learned this the hard way. When you go to set up another git user on WP Engine, just follow step #3 from the link above to copy your computer’s SSH key. Again, do not set up another SSH key on your computer!
- From there, you can pretty much follow these instructions. But understand that it’s gonna be messy.
Some things I learned:
- WP Engine’s git feature is not a replacement for Github or Bitbucket. It is to be used in conjunction with those services. For example, I have a repository on Bitbucket that I use to manage all of my branches. Right now, my workflow has all of my code up on Bitbucket. I push to WP Engine only after I have already pushed to Bitbucket.
- You can push any local branch to either WP Engine’s staging environment or its production environment.
- To push your local “staging” branch to the WP Engine production site, type, “git push production staging”.
- To push your local “master” branch to the WP Engine production site, type, “git push production master”.
- To push your local “staging” branch to the WP Engine staging site, type, “git push staging staging”.
- To push your local “master” branch to the WP Engine staging site, type, “git push staging master”.
- To push your local “feature-my-branch-name” branch to the WP Engine staging site, type, “git push staging feature-my-branch-name”.
- Got it?
- WP Engine’s git functionality is a replacement for SFTP. This is actually an awesome thing. It’s not that SFTP is hard (it’s not). It’s that git and FTP don’t play nice together. If you use git locally and ftp files, you are liable to ftp up branches and features that you did not intend to. So, stop FTP’ing into WP Engine – use “git push” instead.
- You can push feature branches to WP Engine git, but don’t; use Bitbucket/Github to manage branches, instead. Think of WP Engine as live code only.
Resources
More posts from themightymo.com
How to merge multiple .csv files via command line
Today I downloaded 29 csv files with tax information. I could import those files 1 at a time into WooCommerce, but wouldn’t it be nice if I could merge them first and then only import a single file? The unix command is simple – just navigate to the folder with all the csv files and…
15 Best WordPress Support and Maintenance Services for 2023: Ensuring Your Website Stays in Top Shape
Small business owners and non-profit leaders know that keeping your website secure, fast, and fully-functional is critical to success. Here’s the unspoken truth: You can either learn how to do all that tech maintenance and development stuff yourself, or hire someone else to do it. But let’s face it, doing it yourself isn’t always the…
How to Whitelist SEM Rush IPs in Cloudflare
Alright, I’m going to show you how to whitelist a set of IPs on CloudFlare. In our case we use SEMrush and we want to make sure the SEMrush has full access to our sites.