Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Unfortunately there's not enough time to teach you git, but maybe I can persuade you to siwtch anyway.
Changes go into a staging area before being committed. Convenient (commit some changes) but hard to get used to.
There are 3+ places for your code. Working directory (not commited), staging area (to be commited), local repo (commited), remote repo (shared).
Committing doesn't means everyone has access to it. You need to push or have others pull your commits.
You also need to pull commits before you get access to them.
Branch early, Branch often
git checkout -b branch
git merge branch
* 7e927c8 - (HEAD, master) Finish docs (1 seconds ago)
* 7762c6e - WIP (11 seconds ago) * f172078 - WIP (15 seconds ago) * bfbe19f - Start working on documentation (33 seconds ago) * 4e58868 - first commit (4 minutes ago)
* 8381ad8 - (HEAD, master) Finish docs (14 seconds ago)
* bfbe19f - Start working on documentation (5 minutes ago) * 4e58868 - first commit (8 minutes ago)
When did feature X stop working?
Specify a good commit and a bad commit, git will do a binary search between the two for the first commit that's bad.
git bisect start git bisect good HEAD~7 git bisect bad HEAD Bisecting: 3 revisions left to test after this (roughly 2 steps)
Demo if time (remind me!)
Run scripts before/after git events:
git init git add . git status git commit -m 'first commit' git checkout -b feature-x git add newFile.txt git commit -m 'Added feature x' git checkout master git pull origin master git merge feature-x git push origin master
git help <command>
Take chances, make mistakes, get messy!