Modifier auteur et email du passé engagent dans une branche spécifique après poussée

voix
0

Donc, j'ai oublié d'ajouter mon nom et e-mail à git config et après que je poussais mes changements que je suis un nom par défaut. Il ressemble fondamentalement à ceci:

  1. [Mon nom] - commit (branche 'feature_1') - LA PLUS RÉCENTE
  2. [Nom par défaut] - commit (branche 'feature_1')
  3. [Mon nom de votre ami] - commit (branche 'feature_2')
  4. [Mon nom] - commit ( 'maître' branche)

Comment suis-je censé changer le nom et e-mail du deuxième engagement sur cette liste (de haut en bas) sans affecter les autres ou chambouler les branches?

EDIT: J'ai oublié d'ajouter que je suis le seul à travailler sur cette fonction de branche.

Créé 07/11/2018 à 20:11
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Vous pouvez changer la base de votre branche qui le commettras et de vous laisser « Refaire » pour avoir votre nom. Ensuite, vous devrez forcer pousser les modifications apportées à la télécommande.

Les commandes pour ce faire sont les suivantes:

git rebase -i <SHA before the commit with the default name>

Vous obtiendrez la liste des commits, pour celui avec le nom par défaut spécifier que vous voulez « reformule » il. Enregistrez le message de validation et votre histoire sera à jour.

, Vous feriez pour mettre à jour la télécommande git push -f. Cela indique git que vos modifications doivent écraser ce qui est sur le dépôt distant.

N'EST PAS CONSEILLÉ

Faire ce qui précède change l'histoire et causer des problèmes si d'autres personnes travaillent également sur cette branche. Ils ont des problèmes quand ils essaient de mettre à jour la branche avec vos modifications. Si vous êtes la seule personne qui traite avec cette branche, il est pas un problème.

Si plusieurs personnes travaillent sur la branche, il suffit de laisser la commettras seul. Vous ne voulez pas de réécrire l'histoire une fois que vous avez poussé.

Créé 07/11/2018 à 20:25
source utilisateur

voix
1

En fait , vous ne pouvez pas sans modifier quoi que ce soit. Modification de toutes les informations d'une révision (avec une modification, par exemple) va créer une révision totalement différente. Vous pouvez le faire:

git checkout my-branch~2 # two revisions back from the branch tip
git commit --amend --author "Foo Bar <darthv@empire.com>"
git cherry-pick my-branch~2..my-branch # reapply revisions 3 and 4
git branch -f my-branch # set my-branch over here

Mais du point vous avez modifié, vous créez des révisions complètement nouvelles qui ne sont pas liés (en termes d'histoire) à ceux d'origine. Exigera une poussée de force sur la télécommande pour remplacer la branche, il faudra d'autres développeurs d'être au courant de ce changement afin qu'ils puissent rebasage si elles travaillent déjà au-dessus de cette branche. Pas particulièrement douloureuse, de toute façon .... comme d'habitude, si vous me demandez.

Créé 07/11/2018 à 20:23
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more