Date: December 19, 2014
Time: 9:00 AM – 3:00 PM CDT
You understand that Source Code Control is important. You use Git because you know it is the defacto standard. Like any power tool though, there are a lot of things that Git will do that you may not know about. This Day Camp 4 Developers will help you get more out of Git.
Git Smart is not a beginner Git class. If you don’t use Git on a regular basis, this is not for you. Git Smart is for those who use Git and want to use it better, want to make it to more, want to get more out of Git.
Join us as we learn from leading Git experts who will help you and your team learn to make Git do more. Join us as we all Git Smart.
Git Branching For Success and Profit
Git is not so new, and with adoption growing all the time, most developers have a good handle on how to get through their day-to-day work. Are they making the best use of the tools, though? This session is an in-depth examination of branching, merging and rebasing; we’ll cover not only what the technical aspects are and which commands to type, but perhaps more importantly when and why to choose one approach over another. Expect lots of code examples, big concepts, and little git tips as we go along!
Get Hooked on Git Hooks
Git hooks allow you to do nearly anything you want them to on certain git actions such as merging, committing, or updating. You could even build a simple continuous integration system using git hooks, shell scripts, and chicken wire. This talk will cover the basics of local and remote git hooks and build some useful hooks to help your team build better software and improve your development workflow.
Example hooks will include running PHPCS before you commit locally, running lint and PHPCS remotely when pushing to the remote git repository, and automagically creating review requests in Review Board for new commits.
Git Internals: Graphs, Hashes, and Compression
Git is a version control system built on well known patterns in computer science. It exposes a powerful library of low-level routines available to users and developers alike. These can come in handy as powerful development tools you can use to extend Git itself. Come and learn how to add and commit files, create branches, and merge, all without using any of the commands you would expect.
I will take you to the very bottom. The floor. The code. The algorithms. The directed acyclic graph of hashed bit sequences made efficient through LZW compression and deferred garbage collection determined by node reachability via hash relationships.
We want and need to know precisely how things work. Let’s dig into the guts of Git.
Git for Maintainers
In the past several years, Git has become the version control system (VCS) of choice for Open Source Software (OSS) developers — both those directly contributing to OSS as well as those consuming it. For those coming from other VCS backgrounds, or those new to maintaining projects, Git is not the full answer to maintaining a project.
In this session, we’ll look at some common problems that occur when maintaining a project. For example: how is maintenance separated from feature development, and how are changes kept in sync between them? How can you handle security patches when working on a public repository? What happens when you need to revert a patch? How do you indicate a release? How do you ensure quality for incoming patches?
On top of this, many of these tasks are quite repetitive, and yet require verbose commands to accomplish.
Each of these questions has several answers. In this session, we’ll look at the tools and processes that have enabled me to be successful as a top 10 GitHub maintainer, and how you can use them to make your repository maintenance simpler, whether you maintain an OSS project or your internal projects.
Pointy Parts of Git
Once you know the day-to-day commands and how to handle workflows in Git with branches and the like, there’s a whole world of Git commands that you can use to make your life better. From rebase’s lesser known onto option to bisecting repositories to managing subtree merges to filtering branches, this talk introduces you to the lesser known parts of Git.