Git não é melhor que Subversion. Mas também não é pior. É diferente.
A principal diferença é que ele é descentralizado. Imagine que você é um desenvolvedor em trânsito, desenvolve no seu laptop e deseja ter controle de origem para poder voltar por 3 horas.
Com o Subversion, você tem um Problema: O Repositório SVN pode estar em um local que você não pode alcançar (na sua empresa, e você não tem Internet no momento), não pode confirmar. Se você deseja fazer uma cópia do seu código, você deve literalmente copiar / colar.
Com o Git, você não tem esse problema. Sua cópia local é um repositório, e você pode se comprometer com ela e obter todos os benefícios do controle de origem. Ao recuperar a conectividade com o repositório principal, você pode se comprometer com ele.
Isso parece bom no começo, mas lembre-se da complexidade adicional dessa abordagem.
Git parece ser a coisa "nova, brilhante, legal". Não é nada ruim (afinal, existe uma razão pela qual Linus o escreveu para o desenvolvimento do Linux Kernel), mas sinto que muitas pessoas pulam no trem "Distributed Source Control" apenas porque é novo e foi escrito por Linus Torvalds, sem realmente saber porque / se é melhor.
O Subversion tem problemas, mas o Git, Mercurial, CVS, TFS ou o que quer.
Edit: Então, esta resposta agora tem um ano e ainda gera muitos votos, então pensei em adicionar mais algumas explicações. No ano passado, desde que escrevemos isso, o Git ganhou muito ímpeto e suporte, principalmente desde que sites como o GitHub realmente decolaram. Atualmente, estou usando o Git e o Subversion e gostaria de compartilhar algumas informações pessoais.
Primeiro de tudo, o Git pode ser realmente confuso a princípio quando se trabalha descentralizado. O que é um controle remoto? e Como configurar corretamente o repositório inicial? Existem duas perguntas que surgem no início, especialmente quando comparadas com o simples "svnadmin create" do SVN, o "git init" do Git pode usar os parâmetros --bare e --shared, que parecem ser a maneira "adequada" de configurar uma centralizada repositório. Existem razões para isso, mas adiciona complexidade. A documentação do comando "checkout" é muito confusa para as pessoas que estão mudando - a maneira "correta" parece ser "git clone", enquanto "git checkout" parece mudar de ramificação.
Git REALMENTE brilha quando você é descentralizado. Eu tenho um servidor em casa e um laptop na estrada, e o SVN simplesmente não funciona bem aqui. Com o SVN, não posso ter controle de fonte local se não estiver conectado ao repositório (Sim, eu sei sobre o SVK ou sobre maneiras de copiar o repositório). Com o Git, esse é o modo padrão de qualquer maneira. Porém, é um comando extra (o git commit confirma localmente, enquanto o git push origin master envia a ramificação master para o controle remoto chamado "origin").
Como dito acima: Git adiciona complexidade. Dois modos de criação de repositórios: checkout x clone, commit x push ... Você precisa saber quais comandos funcionam localmente e quais funcionam com "o servidor" (presumo que a maioria das pessoas ainda goste de um "repositório principal" central )
Além disso, as ferramentas ainda são insuficientes, pelo menos no Windows. Sim, existe um suplemento do Visual Studio, mas ainda uso o git bash com o msysgit.
O SVN tem a vantagem de ser MUITO mais simples de aprender: existe o seu repositório, todas as alterações em relação a ele, se você sabe como criar, confirmar e finalizar a compra e está pronto para começar e pode pegar coisas como ramificação, atualização etc. em.
O Git tem a vantagem de ser MUITO melhor se alguns desenvolvedores nem sempre estiverem conectados ao repositório principal. Além disso, é muito mais rápido que o SVN. Pelo que ouvi, ramificar e mesclar o suporte é muito melhor (o que é esperado, pois esses são os principais motivos pelos quais ele foi escrito).
Isso também explica por que ganha tanto burburinho na Internet, pois o Git é perfeitamente adequado para projetos de código aberto: Just Fork, comprometa suas alterações no seu próprio Fork e peça ao mantenedor do projeto original para fazer suas alterações. Com o Git, isso simplesmente funciona. Realmente, tente no Github, é mágico.
O que eu também vejo são as pontes Git-SVN: O repositório central é um repositório do Subversion, mas os desenvolvedores trabalham localmente com o Git e a ponte envia suas alterações ao SVN.
Mas, mesmo com essa longa adição, ainda mantenho minha mensagem principal: o Git não é melhor ou pior, é apenas diferente. Se você precisa do "Controle de fonte offline" e está disposto a gastar um tempo extra aprendendo, é fantástico. Mas se você tem um controle de fonte estritamente centralizado e / ou está lutando para introduzir o controle de origem em primeiro lugar porque seus colegas de trabalho não estão interessados, a simplicidade e as excelentes ferramentas (pelo menos no Windows) do SVN brilham.