So, in my open source class this semester we have been working heavily with GIT and GIT Hub in order to organize and version control our work on the WebVTT implementation in Firefox. Thankfully, I learnt the basics of GIT before I started this class. If I had to be dealing with GIT and all the other stuff that I have been learning , like Makefiles (argh), this class would have been extra hard.
Up until this point I have been proficient with many of GITs basic operations. The GIT operations that you need to know in order to use GIT at all.
These are the most basic of GIT commands. And I do pretty basic things with them. Up until this class I have not been able/desired to drive down into the most advanced of GITs capabilities, but now this class is giving me an opportunity to delve a little deeper.
Some things that I learnt that I didn’t even know were possible are:
- tracking a remote branch which allows you to automatically track updates in the remote branch as well as giving you the ability to do a push if you have r+w permissions
- using git show to see the most recent changes between anything – branches, commits, etc
The big chunk of what I have learnt in this class regarding GIT is how to properly use GIT in your workflow.
- doing small commits instead of big ones so that each change can be rolled back too and tracked easily
- checking out branches in order to test things out such as testing out whether or not your current commit will merge easily with another commit
One of my friends in class, Jordan Raffoul, who also works with GIT at his job sent me a link to this really insightful article on what a successful git branch model should look like. The article blew me away. It describes a git branching model that accounts for all the work flows in a modern day software development life cycle. From development to production. With capabilities of including hot fixes, bug patches, and feature developments. It’s pretty impressive. I know what GIT model I’m recommending next time I start a new project!
The main thing that all this made me realize is that I haven’t even scratched the tip of the ice berg with GIT. Even while searching for the links to the GIT web page to post in this blog I saw tons of commands I had never heard of. It makes me wonder how powerful GIT truly is.