3. What
is
git?
• Free
open
source
soDware
version
control
tool.
• Created
by
Linus
Torvalds
In
2
weeks
for
managing
Linux
code.
• GitHub:
soDware
hos3ng
site
-‐
On
16
January
2013,
GitHub
announced
it
had
passed
the
3
million
users
mark
and
now
hos3ng
more
than
5
million
repositories.
3/1/13
Crea3ve
Common
BY-‐AS-‐NC
3
4. Why
git?
• Distributed.
• Full
history
repository.
• No
network
requirement,
work
offline
at
anywhere
and
any3me.
• Small
foot
print
and
fast.
• Flexible,
accommodate
any
workflow.
• Pseudo
industry
standard.
3/1/13
Crea3ve
Common
BY-‐AS-‐NC
4
5. Object
Database
http://www.youtube.com/watch?v=GYnOwPl8yCE
3/1/13
Crea3ve
Common
BY-‐AS-‐NC
5
6. 4
Object
Types
• Blob
(content)
• Tree
(directory
lis3ngs)
-‐ Header
-‐ Header
-‐ File
content.
-‐ For
each
file
or
directory
-‐ File
permission
-‐ Object
type
-‐ SHA-‐1
-‐ File
/
Directory
name
• Commit
(snapshots)
Tag
(meta-‐data
of
a
commit)
•
– Author
informa3on
– Name
– Commicer
informa3on
– Tagger
– Commit
message
– Date
– SHA-‐1
of
any
parent
commits
– SHA-‐1
of
the
tree
that
the
– Commit
hash
commit
points
to
– …
3/1/13
Crea3ve
Common
BY-‐AS-‐NC
6
11. 3/1/13
Crea3ve
Common
BY-‐AS-‐NC
11
hcp://www.technovelty.org/linux/git-‐workflow.html
12. GIT
Expressed
in
UML
hcp://utsl.gen.nz/talks/git-‐svn/intro.html
3/1/13
Crea3ve
Common
BY-‐AS-‐NC
12
13. 3
+
1
Areas
3/1/13
Crea3ve
Common
BY-‐AS-‐NC
13
14. Important
Concepts
• Manipulate
graph.
• Track
contents,
not
files.
• Object
name
is
hash
code
which
generated
from
its
content.
• Immutable
objects,
move
reference
pointers.
3/1/13
Crea3ve
Common
BY-‐AS-‐NC
14