Por que es mejor Git que X
Hace un tiempo me encontre este articulo que compara porque preferir Git a otros SCMs, Pongo la traduccion, lamento no haber guardado el enlace a la pagina original, solo guarde el texto y pongo la traduccion
"Porque es Git mejor que X" delineando varios pros y contras de Git vs otros SCM
Resumen:
Briefly:
Git registra contenido en lugar de archivos
"Branch" son ligeros y "Merging" es facil, muy facil
Es distribuido, basicamente cada repositorio es un "Branch", Es mas facil para desarrollar concurrentemente y colaborar que con Subversion. Tambien hace posible desarrollar sin conexion.
No impone ningun flujo, hay muchos flujos posibles con Git. Duplicar el flujo con el estilo de Subversion es facilmente realizado.
Repositorios de Git son mucho mas pequeños in tamaño de archivo que Subversion.
"Why Git is Better than X" outlines the various pros and cons of Git vs other SCMs.
Branches are lightweight and merging is easy, and I mean really easy.
It's distributed, basically every repository is a branch. It's much easier to develop concurrently and collaboratively than with Subversion, in my opinion. It also makes offline development possible.
It doesn't impose any workflow, as seen on the above linked website, there are many workflows possible with Git. A Subversion-style workflow is easily mimicked.
Git repositories are much smaller in file size than Subversion repositories. There's only one ".git" directory, as opposed to dozens of ".svn" repositories (note Subversion 1.7 and higher now uses a single directory like Git.)
The staging area is awesome, it allows you to see the changes you will commit, commit partial changes and do various other stuff.
Stashing is invaluable when you do "chaotic" development, or simply want to fix a bug while you're still working on something else (on a different branch).
You can rewrite history, which is great for preparing patch sets and fixing your mistakes (before you publish the commits)
… and a lot more.
There are some disadvantages:
There aren't many good GUIs for it yet. It's new and Subversion has been around for a lot longer, so this is natural as there are a few interfaces in development. Some good ones include TortoiseGit and GitHub for Mac.
Partial checkouts/clones of repositories are not possible at the moment (I read that it's in development). However, there is submodule support. Git 1.7+ supports sparse checkouts.
It might be harder to learn, even though I did not find this to be the case (about a year ago). Git has recently improved its interface and is quite user friendly.
In the most simplistic usage, Subversion and Git are pretty much the same. There isn't much difference between:
svn checkout svn://foo.com/bar bar
cd bar
# edit
svn commit -m "foo"
and
git clone git@github.com:foo/bar.git
cd bar
# edit
git commit -a -m "foo"
git push
"Porque es Git mejor que X" delineando varios pros y contras de Git vs otros SCM
Resumen:
Briefly:
Git registra contenido en lugar de archivos
"Branch" son ligeros y "Merging" es facil, muy facil
Es distribuido, basicamente cada repositorio es un "Branch", Es mas facil para desarrollar concurrentemente y colaborar que con Subversion. Tambien hace posible desarrollar sin conexion.
No impone ningun flujo, hay muchos flujos posibles con Git. Duplicar el flujo con el estilo de Subversion es facilmente realizado.
Repositorios de Git son mucho mas pequeños in tamaño de archivo que Subversion.
"Why Git is Better than X" outlines the various pros and cons of Git vs other SCMs.
It's distributed, basically every repository is a branch. It's much easier to develop concurrently and collaboratively than with Subversion, in my opinion. It also makes offline development possible.
It doesn't impose any workflow, as seen on the above linked website, there are many workflows possible with Git. A Subversion-style workflow is easily mimicked.
Git repositories are much smaller in file size than Subversion repositories. There's only one ".git" directory, as opposed to dozens of ".svn" repositories (note Subversion 1.7 and higher now uses a single directory like Git.)
The staging area is awesome, it allows you to see the changes you will commit, commit partial changes and do various other stuff.
Stashing is invaluable when you do "chaotic" development, or simply want to fix a bug while you're still working on something else (on a different branch).
You can rewrite history, which is great for preparing patch sets and fixing your mistakes (before you publish the commits)
… and a lot more.
There are some disadvantages:
There aren't many good GUIs for it yet. It's new and Subversion has been around for a lot longer, so this is natural as there are a few interfaces in development. Some good ones include TortoiseGit and GitHub for Mac.
Partial checkouts/clones of repositories are not possible at the moment (I read that it's in development). However, there is submodule support. Git 1.7+ supports sparse checkouts.
It might be harder to learn, even though I did not find this to be the case (about a year ago). Git has recently improved its interface and is quite user friendly.
In the most simplistic usage, Subversion and Git are pretty much the same. There isn't much difference between:
svn checkout svn://foo.com/bar bar
cd bar
# edit
svn commit -m "foo"
and
git clone git@github.com:foo/bar.git
cd bar
# edit
git commit -a -m "foo"
git push
Comentarios
Publicar un comentario