SlideShare a Scribd company logo
INSIDE
GIT
GIT INSIDE OUT
MICHAEL NADEL
▸Developer @ Pine River Capital Management
▸New(ish) to .NET
▸3-year Git practitioner
▸Please reach out!
▸michael.nadel@gmail.com
▸@mnadel
GIT INSIDE OUT
GIT IS HARD
▸Linus Torvalds, creator of Git (and Linux)
▸Initial revision of “git”, the information manager from hell
▸I didn’t really expect anyone to use it because it’s so hard
to use.
▸Andrew Morton, lead Linux kernel developer
▸Git is expressly designed to make you feel less intelligent
than you thought you were.
GIT INSIDE OUT
THE CHALLENGE WITH GIT
▸Plenty of rope
▸Paradigm shifts
▸Distributed
▸Content-addressable filesystem
GIT INSIDE OUT
WHY INSIDE OUT?
GIT INSIDE OUT
AGENDA
▸Paradigm shifts
▸Conceptual models
▸Overview of internals
▸Dissect common operations
GIT INSIDE OUT
DISTRIBUTED
▸No central authority (except by convention)
YOUR REPO/CLONE OTHERS’ REPOS
CLONE
FETCH
PUSH
GIT INSIDE OUT
COMMITTING != SHARING
▸Separate concerns
▸Crafting your history
▸Publishing your history
▸Richer workflows
▸Commit, commit, commit, squash, push
▸Reorder, push subset
▸Enforced code reviews
GIT INSIDE OUT
CONTENT ADDRESSABLE
▸Version control is an abstraction on top of a primitive
key/value store
▸hash-object
▸cat-file
▸Prove
▸cat-file performs no magic
GIT INSIDE OUT
CONTENT ADDRESSABLE
▸Given arbitrary content
GIT INSIDE OUT
CONTENT ADDRESSABLE
▸Git primitive: hash-object
GIT INSIDE OUT
CONTENT ADDRESSABLE
▸Git returns its key (SHA1 hash of contents)
GIT INSIDE OUT
CONTENT ADDRESSABLE
▸Git primitive: cat-file
GIT INSIDE OUT
CONTENT ADDRESSABLE
▸Git returns the original content
GIT INSIDE OUT
CONTENT ADDRESSABLE
▸Final proof!
GIT INSIDE OUT
CONTENT ADDRESSABLE FILESYSTEM
▸Instead of text, how about your filesystem?
GIT INSIDE OUT
CONCEPTUAL MODELS
▸Git as a Database
▸Store, retrieve, search your source code & its history
▸Git as a Graph
▸CRUD operations are performed against a graph of
commits
GIT INSIDE OUT
GIT AS A DATABASE
▸CRUD, search operations
▸Data types
▸Commit
▸Tree
▸Blob
Structured text
byte[]
GIT INSIDE OUT
DB TYPE - COMMIT
GIT INSIDE OUT
DB TYPE - COMMIT
GIT INSIDE OUT
DB TYPE - COMMIT
GIT INSIDE OUT
DB TYPE - TREE
GIT INSIDE OUT
DB TYPE - TREE
GIT INSIDE OUT
DB TYPE - TREE
GIT INSIDE OUT
DB TYPE - TREE
GIT INSIDE OUT
DB TYPE - BLOB
GIT INSIDE OUT
CONTENT ADDRESSABLE FILESYSTEM
93b6
ae3e
7bbc63b7
4e3c 3ca5
GIT INSIDE OUT
GIT AS A GRAPH
▸What operations must I perform to get the graph to look the
way I want?
GIT INSIDE OUT
GIT COMMANDMENTS
▸Git is immutable
▸No updates, only appends
▸Git is a directed acyclic graph (DAG)
▸Directed: can only traverse in a single direction
▸Acyclic: no cycles — traversals only visit a node once
▸Every command is an operation on the graph
GIT INSIDE OUT
GIT IS IMMUTABLE
PREVIOUS SNAPSHOTCURRENT SNAPSHOT
▸Branch
▸Commit
▸Fetch
▸Merge
▸Push
▸Rebase
GIT INSIDE OUT
DISSECT COMMON OPERATIONS
GIT INSIDE OUT
REFS, HEADS, BRANCHES
▸Ref is a pointer to a commit
▸Branch is a ref
▸HEAD is a pointer to your current branch
▸Branches have “namespaces”
GIT INSIDE OUT
BRANCH (BEFORE)
▸A branch is a ref
▸A ref is a pointer to a commit
GIT INSIDE OUT
BRANCH (AFTER)
▸A branch is a ref
▸A ref is a pointer to a commit
▸Heads contain your branches
▸Remotes contain remote
branches (eg origin)
▸“Namespaces” are directories
▸Branches are 40-byte files
containing a SHA1 hash of a
commit object
GIT INSIDE OUT
BRANCH IMPLEMENTATION
GIT INSIDE OUT
COMMIT (BEFORE)
▸A commit references its parent
▸HEAD, branch point at commit
GIT INSIDE OUT
COMMIT (AFTER)
▸Add a new node
▸Advance branch
GIT INSIDE OUT
FETCH (BEFORE)
▸Fetch brings remote objects into repo
▸Refs, commits
▸But Git is immutable
▸Graft remote commits into graph
▸Updates refs in remote namespace
GIT INSIDE OUT
FETCH (AFTER)
GIT INSIDE OUT
MERGE (BEFORE)
▸Merge is just a commit object
▸But which refers to two parents
GIT INSIDE OUT
MERGE (AFTER)
▸Creates new commit with two parents
▸Current branch, other branch
▸Advance branch
GIT INSIDE OUT
FAST-FORWARD MERGE (BEFORE)
▸Type of merge
▸Is there a traversal from your branch to the other’s?
GIT INSIDE OUT
FAST-FORWARD MERGE (AFTER)
▸Simplest merge
▸Pointer manipulation only
GIT INSIDE OUT
REBASE (BEFORE)
▸Type of merge
▸Without merge commit objects
GIT INSIDE OUT
REBASE (AFTER)
▸Replay your commits onto the other branch
GIT INSIDE OUT
PUSH
▸Two-step process
▸“Reverse” fetch — push commits, refs
▸Attempt a fast-forward merge
GIT INSIDE OUT
PUSH
▸What will happen if you push?
▸How do you recover?
GIT INSIDE OUT
SAVING YOURSELF - RESET
GIT INSIDE OUT
SAVING YOURSELF - REFLOG
GIT INSIDE OUT
SAVING YOURSELF - INTERACTIVE
REBASE
GIT INSIDE OUT
RECAP - CONCEPTUAL MODELS
▸Duality of Git
▸As a database
▸As an immutable DAG
▸Reasoning through problems
▸Launch SmartGit & observe the result of commands
against the DAG
GIT INSIDE OUT
RECAP - “OH SHIT!” COMMANDS
▸git reflog
▸git reset
▸—soft won’t affect your workspace
▸—hard will make your workspace reflect where your
HEAD moved to (you can lose work)
▸git rebase -i
GIT INSIDE OUT
RESOURCES
▸https://git-scm.com/book/en/v1/Git-Internals
▸https://github.com/pluralsight/git-internals-pdf/releases
▸https://pinboard.in/u:mnadel/t:git/
▸http://www.syntevo.com/smartgit/
▸Free for open source projects
▸Also: https://www.sourcetreeapp.com/
▸michael.nadel@gmail.com

More Related Content

Viewers also liked

Getting Git
Getting GitGetting Git
Getting Git
Scott Chacon
 
3 Macmillan english_grammar_in_context_advance
3 Macmillan english_grammar_in_context_advance3 Macmillan english_grammar_in_context_advance
3 Macmillan english_grammar_in_context_advance
katherineageeva
 
Clarke, simon english grammar in context essential
Clarke, simon   english grammar in context essentialClarke, simon   english grammar in context essential
Clarke, simon english grammar in context essential
Telma Ventura
 
face2face Elementary student's book 2nd edition
face2face Elementary student's book 2nd editionface2face Elementary student's book 2nd edition
face2face Elementary student's book 2nd edition
Deborah Kash
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
Lemi Orhan Ergin
 
English book oxford practice grammar with answers
English book   oxford practice grammar with answersEnglish book   oxford practice grammar with answers
English book oxford practice grammar with answers
Maria José Silva
 

Viewers also liked (7)

Getting Git
Getting GitGetting Git
Getting Git
 
Macmillan english grammar in context advance by machael vince
Macmillan english grammar in context advance by machael vinceMacmillan english grammar in context advance by machael vince
Macmillan english grammar in context advance by machael vince
 
3 Macmillan english_grammar_in_context_advance
3 Macmillan english_grammar_in_context_advance3 Macmillan english_grammar_in_context_advance
3 Macmillan english_grammar_in_context_advance
 
Clarke, simon english grammar in context essential
Clarke, simon   english grammar in context essentialClarke, simon   english grammar in context essential
Clarke, simon english grammar in context essential
 
face2face Elementary student's book 2nd edition
face2face Elementary student's book 2nd editionface2face Elementary student's book 2nd edition
face2face Elementary student's book 2nd edition
 
Git Branching Model
Git Branching ModelGit Branching Model
Git Branching Model
 
English book oxford practice grammar with answers
English book   oxford practice grammar with answersEnglish book   oxford practice grammar with answers
English book oxford practice grammar with answers
 

Similar to Git inside out

Git
GitGit
Git training
Git trainingGit training
Git training
adm_exoplatform
 
git- Most Of The Things About a Trending DVCS
git- Most Of The Things About a Trending DVCSgit- Most Of The Things About a Trending DVCS
git- Most Of The Things About a Trending DVCS
Isuru Wimalasundera
 
Git cheat-sheets
Git cheat-sheetsGit cheat-sheets
Git cheat-sheets
ozone777
 
Git.odp 0
Git.odp 0Git.odp 0
Git.odp 0
Mannu Malhotra
 
GIT workshop at Selenium Conference 2018
GIT workshop at Selenium Conference 2018GIT workshop at Selenium Conference 2018
GIT workshop at Selenium Conference 2018
Pooja Shah
 
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
AmyJune Hineline (she-her)
 
Git lord | A brief intro about git commands in Star Wars theme
Git lord | A brief intro about git commands in Star Wars themeGit lord | A brief intro about git commands in Star Wars theme
Git lord | A brief intro about git commands in Star Wars theme
Akarsh Satija
 
Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)
Mizan Riqzia
 
Pragmatic Git workflow
Pragmatic Git workflowPragmatic Git workflow
Pragmatic Git workflow
Tomek Cejner
 
Github By Nyros Developer
Github By Nyros DeveloperGithub By Nyros Developer
Github By Nyros Developer
Nyros Technologies
 
GitLab_meetup_tokyo_201807
GitLab_meetup_tokyo_201807GitLab_meetup_tokyo_201807
GitLab_meetup_tokyo_201807
Shota Ito
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Amit Mathur
 
simple Git
simple Git simple Git
simple Git
Caesar Chi
 
Learning Basic GIT Cmd
Learning Basic GIT CmdLearning Basic GIT Cmd
Learning Basic GIT Cmd
srinathcox
 
Git basics
Git basicsGit basics
Git basics
terencechia88
 
Enterprise git
Enterprise gitEnterprise git
Enterprise gitPedro Melo
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
James Gray
 
Source control management
Source control managementSource control management
Source control management
Owen Winkler
 

Similar to Git inside out (20)

Git
GitGit
Git
 
Git training
Git trainingGit training
Git training
 
git- Most Of The Things About a Trending DVCS
git- Most Of The Things About a Trending DVCSgit- Most Of The Things About a Trending DVCS
git- Most Of The Things About a Trending DVCS
 
Git cheat-sheets
Git cheat-sheetsGit cheat-sheets
Git cheat-sheets
 
Git.odp 0
Git.odp 0Git.odp 0
Git.odp 0
 
GIT workshop at Selenium Conference 2018
GIT workshop at Selenium Conference 2018GIT workshop at Selenium Conference 2018
GIT workshop at Selenium Conference 2018
 
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
 
Git lord | A brief intro about git commands in Star Wars theme
Git lord | A brief intro about git commands in Star Wars themeGit lord | A brief intro about git commands in Star Wars theme
Git lord | A brief intro about git commands in Star Wars theme
 
Introduction To Git
Introduction To GitIntroduction To Git
Introduction To Git
 
Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)Nge-GIT (Belajar Git Bareng)
Nge-GIT (Belajar Git Bareng)
 
Pragmatic Git workflow
Pragmatic Git workflowPragmatic Git workflow
Pragmatic Git workflow
 
Github By Nyros Developer
Github By Nyros DeveloperGithub By Nyros Developer
Github By Nyros Developer
 
GitLab_meetup_tokyo_201807
GitLab_meetup_tokyo_201807GitLab_meetup_tokyo_201807
GitLab_meetup_tokyo_201807
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
simple Git
simple Git simple Git
simple Git
 
Learning Basic GIT Cmd
Learning Basic GIT CmdLearning Basic GIT Cmd
Learning Basic GIT Cmd
 
Git basics
Git basicsGit basics
Git basics
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Source control management
Source control managementSource control management
Source control management
 

Recently uploaded

PACT launching workshop presentation-Final.pdf
PACT launching workshop presentation-Final.pdfPACT launching workshop presentation-Final.pdf
PACT launching workshop presentation-Final.pdf
Mohammed325561
 
Uniform Guidance 3.0 - The New 2 CFR 200
Uniform Guidance 3.0 - The New 2 CFR 200Uniform Guidance 3.0 - The New 2 CFR 200
Uniform Guidance 3.0 - The New 2 CFR 200
GrantManagementInsti
 
Get Government Grants and Assistance Program
Get Government Grants and Assistance ProgramGet Government Grants and Assistance Program
Get Government Grants and Assistance Program
Get Government Grants
 
PPT Item # 8 - Tuxedo Columbine 3way Stop
PPT Item # 8 - Tuxedo Columbine 3way StopPPT Item # 8 - Tuxedo Columbine 3way Stop
PPT Item # 8 - Tuxedo Columbine 3way Stop
ahcitycouncil
 
Up the Ratios Bylaws - a Comprehensive Process of Our Organization
Up the Ratios Bylaws - a Comprehensive Process of Our OrganizationUp the Ratios Bylaws - a Comprehensive Process of Our Organization
Up the Ratios Bylaws - a Comprehensive Process of Our Organization
uptheratios
 
PPT Item # 5 - 5330 Broadway ARB Case # 930F
PPT Item # 5 - 5330 Broadway ARB Case # 930FPPT Item # 5 - 5330 Broadway ARB Case # 930F
PPT Item # 5 - 5330 Broadway ARB Case # 930F
ahcitycouncil
 
Understanding the Challenges of Street Children
Understanding the Challenges of Street ChildrenUnderstanding the Challenges of Street Children
Understanding the Challenges of Street Children
SERUDS INDIA
 
如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样
如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样
如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样
850fcj96
 
ZGB - The Role of Generative AI in Government transformation.pdf
ZGB - The Role of Generative AI in Government transformation.pdfZGB - The Role of Generative AI in Government transformation.pdf
ZGB - The Role of Generative AI in Government transformation.pdf
Saeed Al Dhaheri
 
Canadian Immigration Tracker March 2024 - Key Slides
Canadian Immigration Tracker March 2024 - Key SlidesCanadian Immigration Tracker March 2024 - Key Slides
Canadian Immigration Tracker March 2024 - Key Slides
Andrew Griffith
 
Counting Class for Micro Observers 2024.pptx
Counting Class for Micro Observers 2024.pptxCounting Class for Micro Observers 2024.pptx
Counting Class for Micro Observers 2024.pptx
Revenue Department Kerala State
 
Many ways to support street children.pptx
Many ways to support street children.pptxMany ways to support street children.pptx
Many ways to support street children.pptx
SERUDS INDIA
 
What is the point of small housing associations.pptx
What is the point of small housing associations.pptxWhat is the point of small housing associations.pptx
What is the point of small housing associations.pptx
Paul Smith
 
PPT Item # 9 - 2024 Street Maintenance Program(SMP) Amendment
PPT Item # 9 - 2024 Street Maintenance Program(SMP) AmendmentPPT Item # 9 - 2024 Street Maintenance Program(SMP) Amendment
PPT Item # 9 - 2024 Street Maintenance Program(SMP) Amendment
ahcitycouncil
 
一比一原版(UQ毕业证)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证)昆士兰大学毕业证成绩单一比一原版(UQ毕业证)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证)昆士兰大学毕业证成绩单
ehbuaw
 
PNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdf
PNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdfPNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdf
PNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdf
ClaudioTebaldi2
 
一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单
一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单
一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单
ukyewh
 
2024: The FAR - Federal Acquisition Regulations, Part 37
2024: The FAR - Federal Acquisition Regulations, Part 372024: The FAR - Federal Acquisition Regulations, Part 37
2024: The FAR - Federal Acquisition Regulations, Part 37
JSchaus & Associates
 
Russian anarchist and anti-war movement in the third year of full-scale war
Russian anarchist and anti-war movement in the third year of full-scale warRussian anarchist and anti-war movement in the third year of full-scale war
Russian anarchist and anti-war movement in the third year of full-scale war
Antti Rautiainen
 
MHM Roundtable Slide Deck WHA Side-event May 28 2024.pptx
MHM Roundtable Slide Deck WHA Side-event May 28 2024.pptxMHM Roundtable Slide Deck WHA Side-event May 28 2024.pptx
MHM Roundtable Slide Deck WHA Side-event May 28 2024.pptx
ILC- UK
 

Recently uploaded (20)

PACT launching workshop presentation-Final.pdf
PACT launching workshop presentation-Final.pdfPACT launching workshop presentation-Final.pdf
PACT launching workshop presentation-Final.pdf
 
Uniform Guidance 3.0 - The New 2 CFR 200
Uniform Guidance 3.0 - The New 2 CFR 200Uniform Guidance 3.0 - The New 2 CFR 200
Uniform Guidance 3.0 - The New 2 CFR 200
 
Get Government Grants and Assistance Program
Get Government Grants and Assistance ProgramGet Government Grants and Assistance Program
Get Government Grants and Assistance Program
 
PPT Item # 8 - Tuxedo Columbine 3way Stop
PPT Item # 8 - Tuxedo Columbine 3way StopPPT Item # 8 - Tuxedo Columbine 3way Stop
PPT Item # 8 - Tuxedo Columbine 3way Stop
 
Up the Ratios Bylaws - a Comprehensive Process of Our Organization
Up the Ratios Bylaws - a Comprehensive Process of Our OrganizationUp the Ratios Bylaws - a Comprehensive Process of Our Organization
Up the Ratios Bylaws - a Comprehensive Process of Our Organization
 
PPT Item # 5 - 5330 Broadway ARB Case # 930F
PPT Item # 5 - 5330 Broadway ARB Case # 930FPPT Item # 5 - 5330 Broadway ARB Case # 930F
PPT Item # 5 - 5330 Broadway ARB Case # 930F
 
Understanding the Challenges of Street Children
Understanding the Challenges of Street ChildrenUnderstanding the Challenges of Street Children
Understanding the Challenges of Street Children
 
如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样
如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样
如何办理(uoit毕业证书)加拿大安大略理工大学毕业证文凭证书录取通知原版一模一样
 
ZGB - The Role of Generative AI in Government transformation.pdf
ZGB - The Role of Generative AI in Government transformation.pdfZGB - The Role of Generative AI in Government transformation.pdf
ZGB - The Role of Generative AI in Government transformation.pdf
 
Canadian Immigration Tracker March 2024 - Key Slides
Canadian Immigration Tracker March 2024 - Key SlidesCanadian Immigration Tracker March 2024 - Key Slides
Canadian Immigration Tracker March 2024 - Key Slides
 
Counting Class for Micro Observers 2024.pptx
Counting Class for Micro Observers 2024.pptxCounting Class for Micro Observers 2024.pptx
Counting Class for Micro Observers 2024.pptx
 
Many ways to support street children.pptx
Many ways to support street children.pptxMany ways to support street children.pptx
Many ways to support street children.pptx
 
What is the point of small housing associations.pptx
What is the point of small housing associations.pptxWhat is the point of small housing associations.pptx
What is the point of small housing associations.pptx
 
PPT Item # 9 - 2024 Street Maintenance Program(SMP) Amendment
PPT Item # 9 - 2024 Street Maintenance Program(SMP) AmendmentPPT Item # 9 - 2024 Street Maintenance Program(SMP) Amendment
PPT Item # 9 - 2024 Street Maintenance Program(SMP) Amendment
 
一比一原版(UQ毕业证)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证)昆士兰大学毕业证成绩单一比一原版(UQ毕业证)昆士兰大学毕业证成绩单
一比一原版(UQ毕业证)昆士兰大学毕业证成绩单
 
PNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdf
PNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdfPNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdf
PNRR MADRID GREENTECH FOR BROWN NETWORKS NETWORKS MUR_MUSA_TEBALDI.pdf
 
一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单
一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单
一比一原版(QUT毕业证)昆士兰科技大学毕业证成绩单
 
2024: The FAR - Federal Acquisition Regulations, Part 37
2024: The FAR - Federal Acquisition Regulations, Part 372024: The FAR - Federal Acquisition Regulations, Part 37
2024: The FAR - Federal Acquisition Regulations, Part 37
 
Russian anarchist and anti-war movement in the third year of full-scale war
Russian anarchist and anti-war movement in the third year of full-scale warRussian anarchist and anti-war movement in the third year of full-scale war
Russian anarchist and anti-war movement in the third year of full-scale war
 
MHM Roundtable Slide Deck WHA Side-event May 28 2024.pptx
MHM Roundtable Slide Deck WHA Side-event May 28 2024.pptxMHM Roundtable Slide Deck WHA Side-event May 28 2024.pptx
MHM Roundtable Slide Deck WHA Side-event May 28 2024.pptx
 

Git inside out

Editor's Notes

  1. Take informal survey!
  2. http://typicalprogrammer.com/linus-torvalds-goes-off-on-linux-and-git/ http://www.linuxfoundation.org/news-media/blogs/browse/2012/02/greatness-git
  3. How many people can relate? I often found myself in this situation. Then started learning more & more about Git’s internals. And found myself in this situation less & less. I started talking to other people about it, and, it turns out, they had a similar experience. This is why I want to take a depth-first approach with you folks tonight. I think it’s important to grok Git’s internals in order to be able to reason your way through situations you find yourself in. And I want to share that journey with you this evening.
  4. NEXT: Distributed
  5. Git is egalitarianistic
  6. NEXT: Content addressable
  7. Porcelain vs plumbing
  8. NEXT: Conceptual models
  9. NEXT: Git as a database
  10. Note that the filename isn’t part of the blob
  11. NEXT: Git as a graph
  12. A tree is a DAG iff each child has a single parent. It’s immutable b/c of the key-value store.
  13. NEXT: Dissect Ruby on Rails SVN repo: 115M Ruby on Rails Git repo: 13M
  14. Implemented as writing a 40-byte hash to a file on your file system. This is why branching is blazing fast.
  15. It's a *D*AG. Since new nodes aren't reachable by HEAD, your view of the graph hasn't changed, thus we haven't violated its immutability.
  16. NEXT: Saving yourself series
  17. NEXT: Recap
  18. NEXT: Resources