Key Takeaways
- Git was created by Linus Torvalds in 2005
- The initial public release of Git was version 1.0 on 2005-04-07
- Git is written in C
- Git’s object model includes blob, tree, commit types
- Git commit objects store tree reference, parents, author/committer, and message
- Git’s commit format includes “tree”, “parent”, “author”, “committer” headers
- Git “git commit” uses “--amend” to replace the last commit
- Git “git commit” has “--no-verify” to bypass pre-commit hooks
- Git “git commit” has “--signoff” to add Signed-off-by line
- Pro Git book states branches are lightweight movable pointers to commits
- Pro Git book states there are three kinds of branch references: local, remote-tracking, and tags
- GitHub docs define “pull request” and mention commits are compared
- GitHub docs define “Commit signature verification” for commits
- GitHub docs say you can “require verified commits” for protected branches
- GitHub docs mention “verified” (green check) for GPG/S/MIME signatures
Git commit objects store parents, trees, messages, enabling signed, verified history.
Git History & Adoption
Git History & Adoption Interpretation
Git Performance & Storage
Git Performance & Storage Interpretation
Git Workflows & Practices
Git Workflows & Practices Interpretation
Git Branching & Collaboration
Git Branching & Collaboration Interpretation
Git Security, Integrity & Signed Commits
Git Security, Integrity & Signed Commits Interpretation
References
- 1kernel.org/pub/software/scm/git/docs/history.html
- 2git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository
- 3git-scm.com/about/
- 8git-scm.com/book/en/v2/Git-Internals-Git-Objects
- 9git-scm.com/docs/gittutorial#_git_basics_git_commits
- 10git-scm.com/docs/git-show
- 11git-scm.com/docs/commit-graph
- 12git-scm.com/docs/git-gc
- 13git-scm.com/docs/git-repack
- 14git-scm.com/docs/git-pack-objects
- 15git-scm.com/docs/git-prune
- 16git-scm.com/docs/git-config#Documentation/git-config.txt-gcpruneExpire
- 17git-scm.com/docs/git-config#Documentation/git-config.txt-gcauto
- 18git-scm.com/docs/git-config#Documentation/git-config.txt-corecompression
- 19git-scm.com/docs/git-config#Documentation/git-config.txt-corepackedGitLimit
- 20git-scm.com/docs/git-config#Documentation/git-config.txt-corepackedGitWindowSize
- 21git-scm.com/docs/git-config#Documentation/git-config.txt-corebigFileThreshold
- 22git-scm.com/docs/git-config#Documentation/git-config.txt-corelooseCompression
- 23git-scm.com/docs/git-config#Documentation/git-config.txt-COREDeltabasecachelimit
- 24git-scm.com/docs/git-config#Documentation/git-config.txt-corepreloadindex
- 25git-scm.com/docs/git-config#Documentation/git-config.txt-corepreloadrefs
- 26git-scm.com/docs/git-fsck
- 27git-scm.com/docs/git-commit
- 28git-scm.com/docs/commit-graph#_extensions
- 29git-scm.com/docs/git-commit-graph
- 30git-scm.com/docs/git-config#Documentation/git-config.txt-packwriteBitmaps
- 31git-scm.com/docs/git-config#Documentation/git-config.txt-packuseBitmaps
- 32git-scm.com/docs/pack-objects#_options
- 33git-scm.com/docs/git-commit-tree
- 34git-scm.com/docs/git-config#Documentation/git-config.txt-gcwritecommitgraph
- 35git-scm.com/docs/git-config#Documentation/git-config.txt-gcwritebitmaphashcache
- 36git-scm.com/docs/git-config#Documentation/git-config.txt-gcbigPackThreshold
- 37git-scm.com/docs/git-config#Documentation/git-config.txt-gcautoDetach
- 38git-scm.com/docs/git-config#Documentation/git-config.txt-gcpackrefs
- 39git-scm.com/docs/git-commit#Documentation/git-commit.txt---amend
- 40git-scm.com/docs/git-commit#Documentation/git-commit.txt---no-verify
- 41git-scm.com/docs/git-commit#Documentation/git-commit.txt---signoff
- 42git-scm.com/docs/git-commit#Documentation/git-commit.txt---gpg-sign
- 43git-scm.com/docs/git-commit#Documentation/git-commit.txt---allow-empty
- 44git-scm.com/docs/git-commit#Documentation/git-commit.txt---allow-empty-message
- 45git-scm.com/docs/git-commit#Documentation/git-commit.txt---cleanup
- 46git-scm.com/docs/git-log#Documentation/git-log.txt---since
- 47git-scm.com/docs/git-log#Documentation/git-log.txt---max-count
- 48git-scm.com/docs/git-log#Documentation/git-log.txt---pretty
- 49git-scm.com/docs/git-shortlog
- 59git-scm.com/docs/git-commit#Documentation/git-commit.txt---date
- 60git-scm.com/docs/git-commit#Documentation/git-commit.txt---reset-author
- 61git-scm.com/docs/git-commit#Documentation/git-commit.txt---reuse-message
- 62git-scm.com/docs/git-commit#Documentation/git-commit.txt---template
- 63git-scm.com/docs/git-commit#Documentation/git-commit.txt---include
- 64git-scm.com/docs/git-commit#Documentation/git-commit.txt---edit
- 65git-scm.com/docs/git-blame
- 66git-scm.com/docs/git-revert
- 67git-scm.com/docs/git-cherry-pick
- 68git-scm.com/docs/git-rebase
- 69git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---onto
- 70git-scm.com/docs/git-merge#Documentation/git-merge.txt---no-ff
- 71git-scm.com/docs/git-merge#Documentation/git-merge.txt---ff-only
- 72git-scm.com/docs/git-merge#Documentation/git-merge.txt---squash
- 73git-scm.com/docs/git-rebase#Documentation/git-rebase.txt--i
- 74git-scm.com/docs/git-merge
- 75git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository
- 77git-scm.com/docs/git-rebase#_options
- 78git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
- 79git-scm.com/book/en/v2/Git-Branching-Remote-Branches
- 87git-scm.com/docs/git-fetch
- 88git-scm.com/docs/git-pull
- 89git-scm.com/docs/git-push
- 90git-scm.com/docs/git-send-pack
- 91git-scm.com/docs/git-update-ref
- 92git-scm.com/docs/git-symbolic-ref
- 93git-scm.com/docs/git-reflog
- 94git-scm.com/docs/git-config#Documentation/git-config.txt-coregcExpire
- 95git-scm.com/docs/git-merge-base
- 96git-scm.com/docs/git-rev-list
- 97git-scm.com/docs/git-log#Documentation/git-log.txt---oneline
- 98git-scm.com/docs/git-log#Documentation/git-log.txt---decorate
- 99git-scm.com/docs/git-log#Documentation/git-log.txt---graph
- 100git-scm.com/docs/git-log#Documentation/git-log.txt---stat
- 101git-scm.com/docs/git-log#Documentation/git-log.txt---format
- 102git-scm.com/docs/git-log
- 107git-scm.com/docs/git-log#Documentation/git-log.txt---show-signature
- 108git-scm.com/docs/git-verify-commit
- 109git-scm.com/docs/git-verify-tag
- 110git-scm.com/docs/git-format-patch
- 111git-scm.com/docs/git-config#Documentation/git-config.txt-commitgpgsign
- 112git-scm.com/docs/git-config#Documentation/git-config.txt-gpgformat
- 113git-scm.com/docs/git-config#Documentation/git-config.txt-usersigningkey
- 116git-scm.com/docs/SHA1-transition
- 117git-scm.com/docs/git-verify-pack
- 118git-scm.com/docs/git-index-pack
- 119git-scm.com/docs/git-rev-parse
- 120git-scm.com/docs/git-cat-file
- 121git-scm.com/docs/git-config#Documentation/git-config.txt-logallrefupdates
- 122git-scm.com/docs/git-fsck#Documentation/git-fsck.txt---no-dangling
- 123git-scm.com/docs/git-fsck#Documentation/git-fsck.txt---lost-found
- 4github.com/git/git
- 5github.com/git/git/graphs/contributors
- 6github.com/git/git/blob/master/COPYING
- 7github.com/git/git/releases
- 50conventionalcommits.org/en/v1.0.0/#specification
- 76conventionalcommits.org/en/v1.0.0/
- 51docs.github.com/en/repositories/working-with-files/managing-commits/squashing-commits
- 52docs.github.com/en/repositories/working-with-files/managing-commits/rebasing-commits
- 53docs.github.com/en/repositories/working-with-files/managing-commits/merging-a-pull-request
- 54docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges
- 55docs.github.com/en/rest/commits/commits?apiVersion=2022-11-28#list-commits
- 56docs.github.com/en/graphql/reference/objects#ref
- 80docs.github.com/en/pull-requests/collaborating-with-pull-requests
- 81docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
- 82docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-the-default-branch
- 83docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches
- 103docs.github.com/en/authentication/managing-commit-signature-verification
- 104docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/enabling-commit-signature-requirements-for-a-protected-branch
- 105docs.github.com/en/authentication/managing-gpg-pgp-key-communications/about-commit-signatures
- 106docs.github.com/en/authentication/managing-commit-signature-verification/verifying-commit-signatures-on-github
- 114docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signatures
- 115docs.github.com/en/authentication/managing-commit-signature-verification/verifying-commit-signatures-on-github/about-commit-signatures
- 57docs.gitlab.com/ee/user/project/merge_requests/merge_request_policies.html
- 84docs.gitlab.com/ee/user/project/merge_requests/
- 85docs.gitlab.com/ee/user/project/protected_branches.html
- 58support.atlassian.com/bitbucket-cloud/docs/merge-pull-requests/
- 86support.atlassian.com/bitbucket-cloud/docs/approving-pull-requests/






