As part of my continued efforts to not lose all of my hard work, I’m implementing tools to help me track changes and have decided to use version control to do it. I’ve chosen to use Git because of my relative familiarity with the tool.
For a bit of background, my web server is running Ubuntu 16.04.3 LTS and the latest version of WordPress at the time of this writing, version 4.9.4. Because GitLab allows for free private repositories and the nature of the project makes a public repository undesirable, it was chosen over GitHub. One thing to note about this setup is that I have full shell access to the server, allowing me to install programs and edit properties as necessary to get things setup. When the website is eventually migrated to its permanent hosting location, some changes may be necessary to the following setup to accommodate the server implementation. Many shared hosting providers do not allow shell access, and a new strategy would need to be considered in this case.
I started the setup by performing a bit of housekeeping with
sudo apt-get update
and then performed the initial Git installation with
sudo apt-get install git
I then performed the usual Git setup, uploading my SSH user’s key to GitLab and setting my username/email with
git config –global user.name “Your Name”
git config –global user.email “firstname.lastname@example.org“
After cd’ing to the directory of the website files, I issued the command
git remote add origin email@example.com:MassHOSA/masshosa-website.git
An important step here is to make sure that no sensitive files are tracked by Git. I did this by adding a .gitignore with the following:
# Main ignored items
# Log files
# OS Files
at this point it was safe to issue a
git add .
and commit with
git commit -m “Initial commit”
and finally push changes with
git push –set-upstream origin master
And that’s all there was to it. I’m now tracking all of the changes that I’m making to theme and plugin files. These are the only files that I really care about reverting and recovering changes that I’ve made. Everything else is backed up regularly using Updraft.