web-dev-qa-db-fra.com

choisissez un commit et conservez l'original SHA code

Je voudrais choisir un commit sur une télécommande récupérée tout en gardant son original SHA code de commit (ma branche actuelle est basée sur cette télécommande que j'ai réinitialisée à un état précédent).

43
blameless75

Un git SHA hachage est calculé à partir de différentes informations:

  1. Le arbre auquel il fait référence; en gros, le contenu actuel du référentiel dans la branche dans laquelle le commit apparaît.
  2. Le SHA du commit (s) parent).
  3. Le message de validation.
  4. Les informations sur l'auteur: nom, email et horodatage.
  5. Les informations sur le committer: nom, email et horodatage.

Même si vous modifiez un commit choisi par cerise pour que l'arborescence, le message de commit, les informations sur l'auteur et le committer soient exactement les mêmes, le SHA du commit parent (ou commits, s'il s'agit de merge commits) sera toujours différent. Ainsi, vous ne pourrez pas générer le même SHA hachage après une sélection) (sauf si vous trouvez un SHA collision;)).

61
Marco Leogrande

Le hachage de validation SHA est composé de l'état du référentiel, en utilisant l'historique complet jusqu'au point de validation (branches non incluses). Cela signifie que vous ne pouvez pas conserver le hachage d'origine sur la cueillette des cerises à moins que toute l'histoire ne soit la même, et dans ce cas, la cueillette des cerises n'aurait aucun sens.

14
eis

Selon vos commentaires sur d'autres réponses, je pense que vous souhaitez simplement réinitialiser un commit distant. Vous pouvez utiliser git reset --hard <SHA> pour faire ça. AVERTISSEMENT: cela supprimera toutes vos modifications (non validées) dans le répertoire de travail et toutes les validations que vous avez faites dans cette branche ne seront plus accessible.

Si ce n'est pas ce que vous voulez (ou si vous n'êtes pas sûr), veuillez décrire plus clairement ce que vous avez fait et ce que vous voulez faire ou ce que vous essayez d'accomplir.

3
siegi