Branche d’un commit précédent en utilisant Git

Si j’ai n commits, comment puis-je me connecter à la validation n-3?

Je peux voir le hash de chaque engagement.

Vous pouvez créer la twig via un hachage:

git branch branchname  

Ou en utilisant une référence symbolique:

 git branch branchname HEAD~3 

Pour extraire la twig lors de sa création, utilisez

 git checkout -b branchname  

Pour faire cela sur github.com:

  1. Allez à votre projet.
  2. Cliquez sur les “Commits”.
  3. Cliquez sur le <> (“Parcourir le référentiel à ce stade de l’historique”) sur le commit à partir duquel vous souhaitez créer une twig.
  4. Cliquez sur “arbre: xxxxxx” en haut à gauche. Juste en dessous de la barre de statistiques de la langue, vous aurez la possibilité de “Rechercher ou créer une twig” (entrez simplement un nouveau nom de twig) Branche de l'engagement précédent

Si vous n’êtes pas sûr de la procédure à partir de laquelle vous souhaitez créer une twig, vous pouvez vérifier les validations et examiner leur code (voir source, comstackr, tester) par

 git checkout  

Une fois que vous avez trouvé le commit à partir duquel vous souhaitez créer une twig, vous pouvez le faire depuis le commit (c’est-à-dire sans revenir au maître en premier) en créant simplement une twig de la manière habituelle:

 git checkout -b  

La magie peut être faite par git reset .

  1. Créez une nouvelle twig et changez-la (tous vos derniers commits sont stockés ici)

    git checkout -b your_new_branch

  2. Revenez à votre twig de travail précédente (supposez que c’est le maître)

    git checkout master

  3. Supprimez les derniers commits x, gardez le master propre

    git reset --hard HEAD~x # in your case, x = 3

A partir de ce moment, tous les derniers commits x ne sont plus que dans la nouvelle twig, pas dans votre twig précédente (maître).

 git checkout -b   

Un moyen rapide de le faire sur votre repository Github serait le suivant:

  • Trouvez le commit spécifique de votre twig
  • À côté de l’identifiant SHA, cliquez sur “Parcourir le repository à ce stade de l’histoire”
  • Ici, vous pouvez créer une nouvelle twig à partir de ce commit entrer la description de l'image ici

Vous pouvez le faire dans Stash.

  1. Cliquez sur le commit
  2. En haut à droite de l’écran, cliquez sur “Tag this commit”
  3. Ensuite, vous pouvez créer la nouvelle twig à partir du tag que vous venez de créer.

Pour ce faire dans Eclipse:

  • Allez dans la perspective “Exploration Git Repository”.
  • Développez “Tags” et choisissez le commit à partir duquel vous voulez créer une twig.
  • Faites un clic droit sur le commit et choisissez “Créer une twig”.
  • Indiquez un nom de twig.

Cela créera une twig locale pour vous. Ensuite, chaque fois que vous poussez vos modifications, votre twig sera transmise au serveur distant.

Une bonne question connexe est la suivante: comment diable est-ce que vous trouvez cela en utilisant l’option --help de git? Essayons ça:

 git branch --help 

Nous voyons cette sortie:

 NAME git-branch - List, create, or delete twigs SYNOPSIS git branch [--color[=] | --no-color] [-r | -a] [--list] [-v [--abbrev= | --no-abbrev]] [--column[=] | --no-column] [(--merged | --no-merged | --contains) []] [--sort=] [--points-at ] [...] git branch [--set-upstream | --track | --no-track] [-l] [-f]  [] git branch (--set-upstream-to= | -u ) [] git branch --unset-upstream [] git branch (-m | -M) []  git branch (-d | -D) [-r] ... git branch --edit-description [] 

Gobbledegook.

Recherchez dans le texte suivant le mot “commit”. Nous trouvons ceci:

   The new branch head will point to this commit. It may be given as a branch name, a commit-id, or a tag. If this option is omitted, the current HEAD will be used instead. 

Nous arrivons quelque part!

Maintenant, concentrez-vous sur cette ligne du gobbledegook:

 git branch [--set-upstream | --track | --no-track] [-l] [-f]  [] 

Condense ça à ceci:

 git branch  [] 

Et fait.

J’ai pu le faire comme ça:

 git branch new_branch_name `git log -n 1 --skip 3 --format=%H` 

Où vous devez entrer la valeur de saut. 0 est la dernière, 1 la précédente, 2 la validation avant cela, etc.

C’est ce que j’ai fait:

 C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b Switched to a new branch 'responsivenavigation' C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch master * responsivenavigation 

Dans ce cas, 8a75b001096536b3216022484af3026aa9c7bb5b était et ancien commit appartenant à la twig principale.

Aller à une validation particulière d’un repository git

Parfois, lorsque vous travaillez sur un référentiel git, vous souhaitez revenir à une validation spécifique (révision) pour obtenir un instantané de votre projet à un moment donné. Pour ce faire, il vous suffit d’avoir le hash SHA-1 de la validation que vous pouvez facilement trouver en consultant le journal avec la commande:

 git log --abbrev-commit --pretty=oneline 

qui vous donnera une liste compacte de tous les commits et de la version courte du hachage SHA-1.

Maintenant que vous savez que le hachage du commit que vous voulez aller, vous pouvez utiliser l’une des 2 commandes suivantes:

 git checkout HASH 

ou

 git reset --hard HASH 

check-out

git checkout

Indique à git de remplacer l’état actuel des chemins par leur état dans la validation donnée. Les chemins peuvent être des fichiers ou des répertoires.

Si aucune twig n’est donnée, git assume la validation HEAD.

 git checkout  // restores path from your last commit. It is a 'filesystem-undo'. 

Si aucun chemin n’est indiqué, git déplace HEAD vers le commit donné (changeant ainsi le commit sur lequel vous êtes assis et sur lequel vous travaillez).

 git checkout branch //means switching twigs. 

réinitialiser

 git reset  //re-sets the current pointer to the given commit. 

Si vous êtes sur une twig (vous devriez normalement être), HEAD et cette twig sont déplacées pour être validées.

Si vous êtes en état HEAD détaché, git reset ne fait que déplacer HEAD . Pour réinitialiser une twig, commencez par la vérifier.

Si vous voulez en savoir plus sur la différence entre git reset et git checkout, je vous recommande de lire le blog officiel de git .

Sélectionnez Commit

Pour les utilisateurs de l’interface graphique de Git, vous pouvez visualiser tout l’historique (si nécessaire), puis cliquer avec le bouton droit sur la validation à partir de laquelle vous souhaitez créer une twig et entrer le nom de la twig.

Entrez le nom de la branche

Visualiser toute l'histoire