8. Git: Distributed Version Control System
2005, Linus torvalds
“I’m an egotistical bastard, and I
name all my project after myself.
First Linux, now git[1]
”
[1]: git (n): British slang for a stupid or unpleasant person
30. Git: Full repository clone
You clone (almost) everything
All branches, all tags, all notes:
git clone
git fetch
Remote repoLocal repo
31. Git: Full repository clone
You clone (almost) everything
Not hooks or config though:
Remote repoLocal repo
git clone/fetch/pull
config
hooks
32. Git: Full repository clone
You clone what you need
Not “one giant unique repo”:
Remote repoLocal repo
git clone
git clone
33. Git: Full repository clone
You do clone *all* the remote repo.
*All*: no authorization when reading:
git clone
git fetch
Remote repoLocal repo
34. Git: Full repository clone
You can put authorization when accessing the upstream repo.
I.E, add a “guardian” like gitolite:
Remote repoLocal repo
git push
gitolite
(perl)
git fetch
35. Git: Full repository clone
You can have audit when accessing the upstream repo.
I.E, gitolite can record git operations:
Remote repoLocal repo
git push
gitolitegit fetch
36. Recap:
Local repository:
No authentication
Basic permission record
Basic timestamp record
Upstream vs. Downstream:
No Listeners
Downstreams unknown
Publication workflow
Full repository clone:
No authorization
Gitolite for authorization and audit
Smaller-size git repos
37. Conclusion:
Local repository:
No authentication
Basic permission record
Basic timestamp record
Upstream vs. Downstream:
No Listeners
Downstreams unknown
Publication workflow
Full repository clone:
No authorization
Smaller-size git repos
Gitolite for authorization and audit