He estado usando Mercurial pero me gustaría hacer una demostración rápida de Git.
¿Cuáles son los equivalentes de Git de:
hg init . # start a project in the current directory
hg addremove # look for any added or deleted files
hg commit -m "comment" # commit any uncomitted changes
hg status # what have i changed since the last commit?

Respuestas:
La piedra rosetta de Git-HG no está mal
Hay algunas otras trampas entre los dos que no se mencionan allí. Esta lista fue tomada de mi propia publicación de blog cuando fui por el otro lado (git -> hg).
Hg
.hgignore, syntax: glob tiene el mismo comportamiento que .gitignore de git.Git
.git/config,~/.gitconfig, el uso git-config para modificar los valores deHg
.hg/hgrc,~/.hgrc, el usohg help -c configGit
git commit -v<br>Hghg diff | less; hg commitGit
gitk<br>Hghg view, or thg from [TortoiseHg][1]Git
git gui<br>Hg Mercurial no incluye GUI para seleccionar conjuntos de cambios, solohg recordcomando de consola .Git
git rebase<br>Hg hg rebase . Porquegit rebase --interactivehay hg histedit , o Mercurial QueuesGit
git push URL ; git remote add origin URL<br>Hghg push URL; $EDITOR .hg/hgrc ; [paths] default = URLGit
gitk, git log origin/master..HEAD<br>Hghg outgoingGit
git format-patch RANGE<br>Hghg email -m filename -oGit
git add . ;Tenga en cuenta el puntoHg
hg add ;No se necesita ningún punto.Git
git checkout REVISION-KEY<br>Hghg update CHANGESETSolo para llenar los espacios en blanco, algunos de los comandos más útiles de Mercurial:
Hg
hg recordGit
git add -p; git commitHg hg inc [URL]
Git Sin equivalente real. Solo puedes hacer el equivalente de
hg pull; hg log -r .:Hg
hg out URLGit Por favor agregue si sabe cómo.
Para la resolución de conflictos de fusión, el
hg resolvecomando en Mercurial tiene algunas opciones que cambian el comportamiento:Hg
hg resolve -m FILE(marca el archivo como resuelto solucionando manualmente el problema del conflicto)Git
git add FILEHg
hg resolve -u FILEmarca el archivo como no resuelto.Git
git reset HEAD FILEpara quitar la etapa del archivo.Hg
hg resolve -l(enumera archivos con conflictos resueltos / no resueltos)Git
git status: los archivos que se fusionaron limpiamente se agregan al índice automáticamente, los que no tienen conflictosHg
hg resolve FILE(después de una fusión, intenta volver a fusionar el archivo)Git no tiene equivalente para volver a fusionar que yo sepa.
fuente
hg recordno es muy fácil de usar,hg crecord(de la extensión crecord ) es una interfaz de usuario de texto basada en maldiciones que es extremadamente fácil de usar.hg resolvees una de las razones por las que prefiero git. De forma predeterminada,hg resolvedestruye su combinación bien resuelta manualmente si no le pasa argumentos.Nota: una de las mayores diferencias entre Git y Mercurial es la presencia explícita del índice o área de preparación .
Desde Mercurial para usuarios de Git :
El truco es que realmente necesitas comprender el índice para explotar completamente Git. Como nos recuerda entonces este artículo de mayo de 2006 (y sigue siendo cierto ahora):
"Si niega el índice, realmente niega el git".
Ahora, ese artículo contiene muchos comandos que ahora son más simples de usar (así que no confíe demasiado en su contenido;)), pero la idea general sigue siendo:
Está trabajando en una nueva función y comienza a realizar pequeñas modificaciones en un archivo.
En este punto, su próxima confirmación embarcará 2 modificaciones menores en la rama actual
Solo registra los cambios agregados al área de preparación (índice) en este punto, no los cambios principales actualmente visibles en su directorio de trabajo.
La próxima confirmación registrará todos los demás cambios importantes en la nueva rama 'newFrature_Branch'.
Ahora, agregar interactivamente o incluso dividir una confirmación son características disponibles con Mercurial, a través del
hg recordcomando ' ' u otras extensiones: necesitará instalarRecordExtension, o elCrecordExtension.Pero esto no es parte del flujo de trabajo normal de Mercurial.
Git ve una confirmación como una serie de " cambios en el contenido del archivo " y le permite agregar esos cambios uno a la vez.
Debería estudiar esa característica y sus consecuencias: la mayor parte del poder de Git (como la capacidad de revertir fácilmente una fusión (o dividir el problema en dos o revertir una confirmación) , al contrario de Mercurial ) proviene de ese paradigma de "contenido de archivo".
tonfa (en en el perfil: "Hg dev, pythonist": cifras ...) intervino, en los comentarios:
Oh chico. Aquí vamos de nuevo.
Primero, no estoy aquí para hacer que una herramienta se vea mejor que otra. Encuentro a Hg genial, muy intuitivo, con un buen soporte (especialmente en Windows, mi plataforma principal, aunque también trabajo en Linux y Solaris8 o 10).
El índice es en realidad frontal y central en la forma en que Linus Torvalds trabaja con un VCS :
Ahora, la combinación del índice (que no es una noción que se ve solo en Git) y el paradigma "el contenido es el rey" lo hace bastante único y "git-ish" :
Nota: el "contenido", aquí, se define de la siguiente manera :
De las preguntas frecuentes , las principales ventajas son:
git diffy validando cada paso pequeño congit addogit add -u.git diff --base,git diff --ours,git diff --theirs.git commit --amendmodificar solo el mensaje de registro si el índice no se ha modificado mientras tantoSi bien tiene razón en general (sobre la parte "probado o compilado"), la forma en que Git le permite bifurcar y fusionar (seleccionar o reajustar) le permite comprometerse con la frecuencia que desee en una rama privada temporal (solo empujada al repositorio de "copia de seguridad" remoto), mientras se vuelven a hacer esas "confirmaciones feas" en una rama pública, con todas las pruebas adecuadas en su lugar.
fuente
Mercurial:
Equivalentes de Git:
fuente
git add -umás de-A; -u organizará cambios para todos los archivos rastreados, ignorando los nuevos archivos no rastreados.git statuses equivalente ahg status. Soy nuevo en Hg y no he logrado que el estado de hg funcione de manera similar al de Git.Es más o menos lo mismo, sin addremove:
Sin embargo, estos son comandos que usaría cuando trabaja solo. Se entra en la ordenada cosas cuando se quiere fusionar sus cambios con el trabajo de otras personas con
git pullygit push, y los comandos relacionados.fuente