It's not like I've been doing this wrong necessarily it's just that there are so many better ways to achieve many of the things I've been trying to do. This book is a fantastic reference, and it showed me that the things I was using Git for barely constitute 10% of everything it's capable of. I thought I was pretty knowledgable about Git before. With that out of the way, what did I think of this book? It's a fantastic tool for version controlling any kind of file you can think of.Īlthough I am comfortable with various graphical wrappers, I've also always prefered the Git Bash interface, perhaps because I've always liked Bash's simplicity and elegance, having played around with various flavours of Linux over the years. I use it in both my day job (the projects we work on are all source controlled in Git these days), but also in my writing business, to source control the Scrivener projects for my books. NET developer, and have been using Git for the past eight years or so. How to construct a git commit with just the plumbing commandsīefore I begin, an introduction is in order, to provide a little context. Cool things you can do with git attributes (like diffing word documents and images or processing files after checkout and before staging). Using Subtree merging instead of submodules to vendor another code base I learned a bunch of very interesting things: Git Internals) are awesome even if you're already quite experiences. They do it in a very nice way (lot's of pictures and examples) and I could understand most of it without having to start my computer and try things out. The first few chapters explain the basics that you're probably familiar with. I usually find out a few things that I did not know or I "cement" existing knowledge. upstream is usually a reference to the repository you did a fork fromĮvery programmer should have read at leas on git book and this one is a good candidate.Įven if I've already did my part, I enjoy reading a git book every now and then. origin is a remote reference to the repository you did a clone fromĩ. Forking project on github just copies the hole repository overĨ. Rebase yields clearer histories than merging but rebasing history someone based some work on is not the thing you'd like to do :)ħ. Branches are just references to revisions - thus you can point this reference to point to a rebase result modifying the whole branch historyĥ. Rebasing won't nuke your old revisions - that's just like basing whole new revision chain with the changes you madeĤ. Every revision has a parent(or multiple ones in case of merge)ģ. Some do uncover lots of internals - feel free to skim.Ģ. 2 hours of reading / first 100 pages were just enough to make my everyday life with git an exciting experience. Similarly, SVN uses reverse diffs and skip-deltas for best performance while making efficient use of space.Ĭool read. Not entirely true Git may use packfile as it sees fit. While doing so, he implies that Git does not use diffs when a file changes (for better performance at the cost of space). This is in addition to that he's comparing one aspect of other VCSs (how file differences are stored) to a different aspect of Git (how the tree is stored). While this does correctly describe CVS, it is incorrect about Subversion, in which each revision points to a complete snapshot of the file system (in a clever and efficient manner). For example, In "Snapshots, Not Differences" he says that Subversion (among other VCSs) only stores revision changes as diffs to files rather than as a snapshot of the what the file system looks like at every revision. Git is great, but with this book you’ll have to tolerate a fanatic and contemptible tone and spurious comparisons to existing VCSs, and you'll also be fed some misinformation. Intermediate and advanced users will want to turn to the reference, the web, or their local expert. I've told many beginners to read the first several chapters to get a good foundation. Update: I've bumped this from two to three stars since the book does have some good value. It teaches you git assuming you have passing knowledge about VCSs - and does a pretty great job teaching the basics - but leaves a lot of open questions about intermediate topics, like branching strategies (and each of their benefits and drawbacks). Despite what the title would indicate, this is targeted at beginners.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |