Git
Why Stack Overflow recommends it
Stack Overflow users link it as a beginner-friendly explanation of how Git works under the hood and why it differs from centralized systems like Subversion.
Recommended by 5 people across 5 different months, 2008 to 2019.
What it is
A 2007 Google Tech Talk in which Randal Schwartz explains what Git is and is not, walks through its core concepts, and argues for it over CVS, Subversion, Mercurial and other version control systems. He frames it around how the Linux kernel team handles huge, highly distributed development.
What people said
Strong rec Matt · 2013-09 · Stack Overflow · on “What do these words mean in Git: Repository, fork, branch, clone, track?”
This GoogleTechTalk [this video] is a fantastic introduction to Git to learn what is actually happening behind the scenes while learning the language also. It was given by a very early contributor to Git and he gave this talk in 2007 as a way of introduction into Git. If you watch this talk you will not only know what each word is, like repository, fork, branch, etc., but you will also know what is occurring behind the scenes when each of these are made, merged, etc. The address is long but very informative. It also contrasts Git to other Version Control Systems so you get insight into why Git was created the way it was and what the comparative advantages of it are over other control systems. Eve
Recommends bendin · 2008-11 · Stack Overflow · on “Why is Git better than Subversion?”
Linus' talk is fun to watch. He brutally rips centralized version control systems like Subversion and CVS. However, Randal Schwartz' [this video] talk is more constructive, more informative and more convincing.
Recommends supercheetah · 2009-02 · Stack Overflow · on “DVCS for a small company of remote employees”
I can't see why not. With something like git , the repository is local to the machine, and so your remote employees can actually have a tracked changelog that can then be merged or rebased with the main repository--whatever you decide that to be--when they get the chance. Also, git has really good compression compared to SVN, so the 3GB/mo quota may be more than enough for your remote employees. Randal Schwartz actually gave a really good presentation on git at Google's Tech Talks: [this video]
Recommends Gordon Potter · 2009-09 · Stack Overflow · on “Setting up multiple development environments'm”
Also, to share code between the machines, I'd have to check it into SVN even if it's not "ready." Git [LINK] very much solves this problem explicitly. As far as offline development goes you should give Git a try. It makes managing offline repositories really simple. And because of its distributed architecture offers a handful of conveniences when moving between environments. It was designed to make the workflow checkin early checkin often. I think you will find it offers things that SVN doesn't. For example you can keep different repositories around for different environments and easily merge changes between them. That way you can have repositories bundled with your VM images. And they can d
Recommends Peter Mortensen · 2019-04 · Stack Overflow · on “What does Linus Torvalds mean when he says that Git "never ever" tracks a file?”
Related: Randal Schwartz' followup to Linus' talk [this video] (also a Google Tech talk) - "... What Git is really all about ... Linus said what Git is NOT".
Cites Jeremy Raymond · 2009-12 · Stack Overflow · on “Git import/export into SVN as a regular workflow?”
Randal Schwartz says [this video] that he uses Git's SVN import/export feature when he has to interact with SVN repositories. He pulls the project from SVN, does all his local edits/saves with Git then once done pushes the changes back to the SVN repository. Is this really a worthwhile process for daily use with a SVN repositories rather than just using SVN straight up? Especially if your end repository has to be SVN.
Cites Ondra Žižka · 2010-01 · Stack Overflow · on “Git: How to move back and forth between commits”
I have a newbie question about Git: I need to move back and forth in a history of a branch. That means, I need to get all the files to the state they were in in some old revision, and then I need to get back to the latest state in the repository. I don't need to commit. With SVN, it would be svn up -r800 to get to revision 800, and svn up to get in sync with the repository. I know the hash of the commit I want to get back to, so I tried git reset <hash> which seems to get me there. But then I tried git pull but that complains about conflicts. So what's the proper way to move through the history of the branch? I'm thinking in terms of SVN, so don't hezitate to point me to some nice tutorial.
Cites Mark Dayel · 2010-09 · Stack Overflow · on “Can git merge upstream changes both to a file and a copy within a repository?”
Is there a way to copy a file (or subdirectory) within a git repo and have git merge upstream changes to both copies? Randal Schwartz mentions that git can do this (27 minutes into this Google Tech talk: [this video] ) Background: I'm using git to track and update CMS software---i.e., I have the CMS in a git repo on my server and I pull and merge updates from the public release branch into this. The problem is that I have made a custom theme, which is a copy of the default theme directory with minor modifications (i.e. I have both the default and custom themes in my repo, and want to keep both). When I update, git merges the changes into the default theme files, but not into my custom theme, so e