J'ai toujours pensé que git reset
y git checkout
sont identiques, dans le sens où ils ramènent tous deux le projet à un commit spécifique. Cependant, je pense qu'ils ne peuvent pas être exactement les mêmes, car cela serait redondant. Quelle est la différence réelle entre les deux ? Je suis un peu confus, car le svn a seulement svn co
pour annuler la livraison.
AJOUTÉ
VonC et Charles ont expliqué les différences entre git reset
y git checkout
vraiment bien. D'après ce que j'ai compris, il s'agit de git reset
rétablit toutes les modifications par rapport à un commit spécifique, tandis que git checkout
se prépare plus ou moins à la création d'une branche. Les deux diagrammes suivants m'ont été très utiles pour parvenir à cette compréhension :
AJOUTÉ 3
En http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html L'extraction et la réinitialisation peuvent émuler le rebasement.
git checkout bar
git reset --hard newbar
git branch -d newbar
0 votes
Jeter un coup d'œil sur git-scm.com/blog/2011/07/11/reset.html
1 votes
Re : "Est-ce une erreur ou une simplification excessive ?" Oui, le premier diagramme est trompeur en ce qui concerne la différence entre l'extraction et la réinitialisation. (Il peut être correct en ce qui concerne la
-- files
variantes ; je n'en suis pas sûr). Ce diagramme donne l'impression que la principale différence réside dans le fait qu'ils affectent l'indice ou le DT. Voir ma réponse à ce sujet. Les deuxième et troisième diagrammes sont très utiles pour voir la différence réelle. Les 4ème et 5ème diagrammes sont utiles pour vérifier si vous comprenez ce que font ces commandes, mais ne vous aideront pas vraiment à y parvenir.0 votes
J'ai trouvé la section "Vérifier" du "Git Tools Reset Demystified" pour donner le résumé le plus utile.
1 votes
Prosseek : Si vous êtes d'accord avec @LarsH pour dire que le premier diagramme est trompeur, pouvez-vous le supprimer, s'il vous plaît ?
0 votes
Veuillez noter que le checkout et la réinitialisation n'émulent que la deuxième partie du rebase, et que des étapes supplémentaires (fournies dans le lien
think-like-a-git.net
) sont nécessaires pour éviter la perte de données.0 votes
Où est ajouté 2 ?