- branches
- merges
- branch merges
- merge conflicts
- cthulhu merges
- CLI experience (
cd
,ls
,mv
,rm
) - The
git
binary (download or your favorite package manager)
- Experience with UNIX commands (
grep
,patch
,diff
,shasum
) - Familiarity with at least one terminal-based editor (
nano
,vi
,emacs
) - Familiarity with config files
Just enough info to make this talk interactive.
Everyday uses for git. Should make you comfortable with branches and history.
In depth concepts and uses for git. For power users.
- specifying revisions
<rev>
, one of<commit>
, a SHA1 sum<describe>
, any output ofgit describe
<refname>
, one of- a branch/tag/remote name
- *HEAD, any of the refs used internally by git, including stashes
<refname>
@{<time>
} gives the tree at latest point before that time
(or the first commit, if the repo was made after that time)
where<time>
:: {yesterday|<ordinal number>
<unit>
[ago]|<date>
}
where<ordinal number>
:: {1, 2, 3 ... | one, two, three ...}
where<unit>
:: {second|minute|hour|day|week|month|year}[s]
where<date>
:: {<isodate>
[-<precise time>
]}
where<isodate>
:: YYYY-MM-DD
where<precise time>
:: HH:MM:SS
also, 'last' changes the output somehow and I have no idea why.<refname>
@{<number>
} gives the<number>
previous commit in that tree- @{
<number>
}, the<number>
previous reflog checked out - @{-
<number>
}, which does something I can't figure out. <branch>
@{push|upstream} shows the latest known remote commit for<branch>
this is the same as<default {upstream|push}>
/<branch>
.
upstream differs from push IFF you have a triangular workflow
<rev>
^<number>
, the<number>
parent of the commit
(not the<number>
previous commit; this is relevant for merge commits with multiple parents<rev>
~<number>
, the<number>
previous commit following first parents
where<number>
:: {1, 2, 3 ...}
- triangular workflows (short explanation)
- rebasing
- fast-forwarding
- resetting
- octopus merges (see also)
The lowest level of git. The commands are used internally by the porcelain.
- blobs
- differential vs. incremental backups
- snapshots