Wiki source code of Getting Started with Git

Version 198.1 by David Avendasora on 2011/04/29 13:28

Hide last authors
David Avendasora 198.1 1 = Got Git? No? Get Git =
Kieran Kelleher 169.1 2
David Avendasora 198.1 3 * Official Download Site: [[http://git-scm.com/download]]
4 * Direct Download Links:
5 ** MacOS X [[.dmg Binary Installers>>http://code.google.com/p/git-osx-installer/]]
6 ** Microsoft Windows [[.exe Binary Installers>>http://code.google.com/p/msysgit/]]
Kieran Kelleher 135.1 7
Kieran Kelleher 194.1 8 = Learning About git =
Kieran Kelleher 135.1 9
David Avendasora 198.1 10 * Learn the concepts.
11 ** [[This>>http://www.eecs.harvard.edu/~~cduan/technical/git/]] is an excellent tutorial on the basic concepts behind Git
Ray Kiddy 175.1 12
David Avendasora 198.1 13 * Now get the basics.
14 ** [[Everyday GIT With 20 Commands Or So>>http://www.kernel.org/pub/software/scm/git/docs/everyday.html]]
15 ** [[Free Online Pro Git book>>http://progit.org/book/]]
Kieran Kelleher 135.1 16
David Avendasora 198.1 17 * Get familiar with the reference materials available online
18 ** Official [[Git Documentation>>http://git-scm.com/documentation]] Site
19 ** Official [[Git User Manual>>http://www.kernel.org/pub/software/scm/git/docs/user-manual.html]]
20 ** [[Git Reference>>http://gitref.org/index.html]]
Ray Kiddy 171.1 21
David Avendasora 198.1 22 * Git Cheat Sheets
23 ** [[http://cheat.errtheblog.com/s/git/]]
24 ** [[http://ktown.kde.org/%7Ezrusin/git/git-cheat-sheet-medium.png]]
25
Kieran Kelleher 165.1 26 * [[Linus Torvalds talks about git>>http://www.youtube.com/watch?v=4XpnKHJAok8]]
David Avendasora 198.1 27 Have a Good Laugh here as Linus Torvalds Evangelizes git. //NOTE: This isn't really learning, but it is way more fun and gives you insight into the motivation behind git.//
Kieran Kelleher 165.1 28
David Avendasora 198.1 29 = Get Started with Project Wonder! =
Kieran Kelleher 165.1 30
David Avendasora 198.1 31 The best way to learn a new concept is to actually use it, and what better way than to do something practical like clone (checkout) the Project Wonder source code!
Kieran Kelleher 165.1 32
David Avendasora 198.1 33 * [[Downloading Wonder>>http://wiki.objectstyle.org/confluence/display/WONDER/Getting+the+Wonder+Source+Code]] Wiki Page
Kieran Kelleher 165.1 34
David Avendasora 198.1 35 = Git Goodies for WebObjects Developers =
Kieran Kelleher 165.1 36
David Avendasora 198.1 37 This is a list of tools that other WebObjects developers have found to be helpful. It's not a comprehensive list, and if you find things not listed here please add them
Kieran Kelleher 135.1 38
Kieran Kelleher 155.1 39 === Git Bash Completion ===
40
41 This is really an absolute necessity and a **huge** productivity improvement. Basically you need the bash completion script from the source tarball and use your shell profile to include it whenever you open a shell. See the **Auto-Completion** section on this page:
42 [[Git Bash Auto-Completion>>http://progit.org/book/ch2-7.html]]
43
Kieran Kelleher 137.1 44 === GitX git GUI ===
45
46 GitX is an awesome FREE history viewer made for OS X. It is a better way to visualize your branch and commit history of your git repository. However, power users (aka "cool kids") will probably only use it for history viewing while they continue to use the terminal command line for checkouts, branching, staging, rebasing and committing.
Kieran Kelleher 135.1 47 [[GitX Home Page>>http://gitx.frim.nl/]]
48
Kieran Kelleher 137.1 49 === Open in GitX ===
Kieran Kelleher 135.1 50
51 [[Open In GitX Finder Droplet>>http://code.google.com/p/git-osx-installer/wiki/OpenInGitX]]
52
David Avendasora 198.1 53 === Git Tower ===
Kieran Kelleher 135.1 54
David Avendasora 198.1 55 [[Git Tower>>http://www.git-tower.com/]] is a commerical app for those of you who just get panic attacks at the thought of using the Terminal.
Kieran Kelleher 135.1 56
David Avendasora 198.1 57 I use Tower (bought it), but only for committing and fixing merge conflicts. I think Tower misses quite a bit of the flagship feature of GIT: branches. You can't see a branch tree graphically, like you can with gitX or even the command line (git log -graph -color, IIRC). But it's cool for committing. For everything else I use command line.
58 Miguel Arroz
Kieran Kelleher 169.1 59
David Avendasora 198.1 60 == Using git locally on a Subversion Working Copy ==
Kieran Kelleher 137.1 61
David Avendasora 198.1 62 OK, so you are addicted to git, and now you have to work on a team project that is hosted in a remote subversion repository ... and it is making you depressed :-( . Well, you can use manage your local svn working copy using git and be happy again
Kieran Kelleher 194.1 63
64 I recommend you just use the [[git+svn protocol>>http://www.lostechies.com/blogs/derickbailey/archive/2010/02/03/branch-per-feature-how-i-manage-subversion-with-git-branches.aspx]].
David Avendasora 198.1 65
66 == Unique Git Concepts ==
67
68 ===== Rebasing =====
69
70 Rebasing is unique to git. There is no counterpart in Subversion.
71
72 Rebasing cuts down on the spaghetti history of merging and helps to keep history nice and linear.
73
74 Conceptually, when I rebase my current branch A on another branch B, git removes all my branch A commits back to the common ancestor of A and B, stashes those commits away temporarily, moves the head of the current branch A to the tip of the other branch B, and then re-applys all my stashed commits as **new commit** patches to my branch B.
75
76 However before using it on work that is shared with others you MUST follow the these rules, otherwise you will screw everyone else on the project.
77
78 * If you don't understand rebasing, don't use it You can learn more about it here:
79 ** [[http://progit.org/book/ch3-6.html]]
80 ** [[http://www.eecs.harvard.edu/~~cduan/technical/git/git-5.shtml]]
81 ** [[http://book.git-scm.com/4_rebasing.html]]
82 ** [[http://blip.tv/file/4094727]]
83 * Use rebase only on **private** branches
84 * Use rebase only for commits that have **not been pushed** to a remote repo