I'll send a couple emails on this subject.
The initial big git hurdle is terminology being so different from other SCM. E.g.,
index
- the set of files git is tracking. If you create a new file, by
default git is not tracking it. Until you "add it to the index" it is very
easy to lose it.
sandbox - git doesn't use this term. The equivalent is a set of 4 things:
* your local repository
* commits - the deltas in your local repository: includes what you originally fetched/pulled plus any commits you have done to it
* any files that have been "added to the index" but not committed yet.
* any untracked files (that you haven't yet added to the index) - git requires you be careful about these.
commit
- a purely local operation of taking all files that have changes and
are being tracked (i.e., new files have been added to the index), and
creating a change-set out of them. Does NOT interact with a central
repository at all.
checkout - purely local operation which switches branches in your local repository - does NOT interact with a central anything. Simplest policy to stay out of trouble is to always add any new files to index and commit all outstanding changes before you do this.
fetch - get changes from central repository, but don't combine/merget/change what is in current 'sandbox' to include them yet. Safe to do this operation whenever.
pull - fetch plus merge the changes. We tend to avoid this and use fetch then rebase.
merge - locally merge changes. We tend to avoid this and use rebase.
rebase
- a merge which replays your changes on top of another commit point
(typically a master branch head), so as to make it look like all the
changes were done in one linear sequence rather than by fork/join
splitting and merging. This is often much easier to deal with than
fork/join merging.
push - moves changes to another repository. Doesn't merge anything. (Must already have been merged locally.)
On Tue, Jan 29, 2013 at 10:46 AM, Tim Kimber
<KIMBERT@uk.ibm.com> wrote:
http://stackoverflow.com/questions/3505409/does-there-exist-git-commit-policies-e-g-when-and-what-to-commit
http://git-scm.com/book/ch5-1.html
regards,
Tim Kimber, DFDL Team,
Hursley, UK
Internet: kimbert@uk.ibm.com
Tel. 01962-816742
Internal tel. 37246742
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
--
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com