5. Why you need it
•Your code will break (and you won't know why)
•Your hard drive will die
•Taking latest files from FTP is pain
Why you think you don't need it and are wrong
•I work alone (you will break your own code)
•My project is small
(projects grow – Facebook used to be 5 files)
7. Centralized Version Control
• Traditional version control system
– Server with database
– Clients have a working version
• Examples
– CVS
– Subversion
– Visual Source Safe
• Challenges
– Multi-developer conflicts
– Client/server communication
10. Distributed Version Control
• Authoritative server by
convention only
• Every working checkout
is a repository
• Get version control
even when detached
• Backups are trivial
• Other distributed
systems include
– Mercurial
– BitKeeper
– Darcs
– Bazaar
11.
12. I'm an egoistical bastard, and I name
all my projects after myself.
First Linux, now git.
-Linus Torvalds
17. Git Advantages
• Resilience
– No one repository has more data than any other
• Speed
– Very fast operations compared to other VCS (I’m looking at you CVS
and Subversion)
• Space
– Compression can be done across repository not just per file
– Minimizes local size as well as push/pull data transfers
• Simplicity
– Object model is very simple
• Large user base with robust tools
25. The downsides
• Complexity
• Windows FTL
• What's an IDE? (but see egit for Eclipse, plus
Vim and Emacs support, and GUIs)
• Still frequent releases
•Cygwin – build yourself
•Ubuntu – use Git PPA
44. How to Contribute
1. Fork a repository at GitHub
2. Clone and connect your local repository
3. Write tests, implement functionality
4. Commit your local changes
5. Push your changes to your fork
6. Make a pull request
7. Profit!!
45. Very good series of blog posts by a CFML developer on Git
workflow to contribute to other open source projects.
http://www.silverwareconsulting.com/index.cfm/Git-Workflow