What differentiates mankind from animals is the use of tools. What differentiates a great developer from a mediocre developer is the types of tools used. Git is taking the development community by storm as the new de facto standard for versioning source code.
The goal of this class is for you to get super comfortable with Git. We want you to master the most common tasks, so you can use them every day without much friction, so that they become second nature. We want you to also be comfortable with advanced features so, when needed, you can look them up and get it done.
Overview of Version Control Systems (VCS)
- Motivation for VCS
- Basic operations (create, checkout, add, status, commit, log, diff, update, move/rename, delete, lock, revert, tag, branch, merge)
Centralized (CVCS) versus distributed (DVCS) version control
- Motivation for DVCS
- More basic operations of DVCS (clone, push, pull)
- Overview of Version Control Internals
Overview of Git
- Motivation and history of Git
- Overview of Git operations
- Getting started with Git (installation, setup)
- Local configuration
Git by Example
- Creating a Git repository on a shared server (git init)
- Managing access control
- Cloning a remote repository (git clone)
- Adding files to a local Git repository (git add)
- Checking for status of files in a local Git repository (git status)
- Committing files to a local Git repository (git commit)
- Pushing changes in a local git repository to a remote Git repository (git push)
- Pulling files from a remote Git repository (git pull)
- Looking at commit logs/history (git log)
- Looking at file changes (git diff)
- Merging files and dealing with conflicts (on git pull)
- Moving and renaming files (git mv)
- Deleting files (git rm)
- Reverting files to their previous state (git checkout)
- Tagging files (git tag)
- Creating using branches (git checkout -b branch)
- Fetching branches (git fetch)
- Merging files across branches (git merge)
- Dealing with conflicts on merge
Ron is an entrepreneur and software development consultant. He has a long history of developing for performance and safety critical software, leading development groups, training application and platform developers, and helping companies in the process of board bring-ups. He also has experience with the design and execution of embedded systems products, security best practices and product start-up.
He specializes in all aspects of distributed systems and Android internals. As the Founder and CTO of Nubo, the first Remote Android Workspace for the Enterprise, he is the designer and original developer of the first Android Remote Display Protocol.
Additionally, Ron is a lecturer at Afeka's college of Engineering, where he has developed and taught the first ever academic Android Internals Course. Ron holds a Master's of Computer Science from Bar-Ilan University.
Ron has also presented at a number of conferences, including: Embedded Linux Conference, Android Builders Summit, AnDevCon, WearableDevCon, DroidCon, mdevcon, Mobile World Congress, and CommunicAsia.