\n\nThe non-technical summary is this: git is a way of managing changes to the content of a directory, and sharing the changes with any number of other people. Rigorously.\n\nThe technical summary is this: git is fast, distributed, project-centric source control (vs. file-centric.)\n\nFor those who use conventional tools of this kind, such as CVS, Subversion, or Perforce -- which are all in essence the same kind of tool -- git is fast, easy to use, distributed, and content-of-the-directory-centric, vs. file-centric. In other words, the fundamental operation of CVS et al is to check out a file, modify it, and then submit the new file. Every operation needs to be thought of in terms of this fundamental operation. The fundamental operation of git is to make changes to the directory and then commit the changes.\n\nTechnically, this means that everyone works in their own branch, and merging branches is easy. Easier than simply performing ordinary changes within a single branch in a conventional SCM.\n\nI'm no expert on SCMs, and most of my experience is with Perforce, but this is a typical operation:\n\n\t- Decide what you want to do.
\n\t- Decide what files you'll need to work with.
\n\t- Check out those files.
\n\t- Make your changes. Possibly check out more files. Possibly add new files.
\n\t- Commit the changes, carefully specifying every file you touched.
\n
\nIf you're being especially responsible, you'll diff every file you're submitting to check change you've made.\n\nHere's what you do in git:\n\n\t- Decide what you want to do ... or not.
\n\t- Do it ... or whatever you end up doing.
\n\t- Commit the changes. (You'll be told what you changed, and can check the changes if you want.)
\n
\nInstalling git
\nYou can download a pretty recent git package for OS X here. It installs very quickly (I'm a bit amazed that this command-line tool supposedly takes 100MB of hard disk space) and works flawlessly under Leopard.\n\nThere's a quick guide to using git here. I had a test project set up in git in minutes, and quickly verified all the key functionality (making branches, switching between them, rolling back) worked exactly as expected.\nNext Steps
\nI haven't gotten into the distributed aspect of all this. (I haven't quite figured out how to do it with my current setup.) Assuming all goes well -- I'm sold. Not only on git as a version control system, but on git as a replacement for backing up in general. I could easily see git being run globally across your entire home directory in Leopard as an alternative to Time Machine, or on specific directories which need real configuration management.","$updatedAt":"2024-06-05T09:25:44.675+00:00",path:"git",_created:"2024-07-09T20:33:31.398Z",id:"141",_modified:"2024-07-09T20:33:31.398Z","$id":"141",_path:"post/path=git"}}