diff options
| author | Owen Jacobson <owen.jacobson@grimoire.ca> | 2013-06-06 14:17:10 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen.jacobson@grimoire.ca> | 2013-06-06 14:17:10 -0400 |
| commit | 4daae732c190c5fcb96619dda1151fcc272395db (patch) | |
| tree | a26212cdd91fae0da5fa35065558613a42b22800 /wiki/git/theory-and-practice/index.md | |
| parent | 0b43b9e3e64793f5a222a644ed5ab074d8fa1024 (diff) | |
Started some work on git theory+practice. Needs exercises.
Diffstat (limited to 'wiki/git/theory-and-practice/index.md')
| -rw-r--r-- | wiki/git/theory-and-practice/index.md | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/wiki/git/theory-and-practice/index.md b/wiki/git/theory-and-practice/index.md new file mode 100644 index 0000000..f1e8311 --- /dev/null +++ b/wiki/git/theory-and-practice/index.md @@ -0,0 +1,41 @@ +# Git Internals 101 + +Yeah, yeah, another article about "how Git works". There are tons of these +already. Personally, I'm fond of Sitaram Chamarty's [fantastic series of +articles](http://gitolite.com/master-toc.html) explaining Git from both ends, +and of [Git for Computer +Scientists](http://eagain.net/articles/git-for-computer-scientists/). Maybe +you'd rather read those. + +This page was inspired by very specific, recurring issues I've run into while +helping people use Git. I think Git's "porcelain" layer -- its user interface +-- is terrible, and does a bad job of insulating non-expert users from Git's +internals. While I'd love to fix that (and I do contribute to discussions on +that front, too), we still have the `git(1)` UI right now and people still get +into trouble with it right now. + +Git follows the New Jersey approach laid out in Richard Gabriel's [The Rise of +"Worse is Better"]: given the choice between a simple implementation and a +simple interface, Git chooses the simple implementation almost everywhere. +This internal simplicity can give users the leverage to fix the problems that +its horrible user interface leads them into, so these pages will focus on +explaining the simple parts and giving users the tools to examine them. + +Throughout these articles, I've written "Git does X" a lot. Git is +_incredibly_ configurable; read that as "Git does X _by default_". I'll try to +call out relevant configuration options as I go, where it doesn't interrupt +the flow of knowledge. + +* [Objects](objects) +* [Refs and Names](refs-and-names) + +By the way, if you think you're just going to follow the +[many](http://git-scm.com/documentation) +[excellent](http://www.atlassian.com/git/tutorial) +[git](http://try.github.io/levels/1/challenges/1) +[tutorials](https://www.kernel.org/pub/software/scm/git/docs/gittutorial.html) +out there and that you won't need this knowledge, well, you will. You can +either learn it during a quiet time, when you can think and experiment, or you +can learn it when something's gone wrong, and everyone's shouting at each +other. Git's high-level interface doesn't do much to keep you on the sensible +path, and you will eventually need to fix something.
\ No newline at end of file |
