Ne github garder supprimé les branches distantes dans l'histoire? Si oui, est-ce que ceux-elle être restaurée?
Je me demandais si il existe un moyen de restaurer une distance supprimé branche sur github. Clairement l'histoire garde en mémoire la branche et se confond avec les autres branches, mais je ne suis pas sûr si c'est possible de restaurer une suppression de la succursale.
Grâce.
Vous devez vous connecter pour publier un commentaire.
Oui, il est possible de restaurer une suppression de la branche à partir de git.
Trouver votre s'Engager ID: Recherche d'une branche à l'aide de git reflog
Si vous avez eu la branche dans vos locaux repo git dans les 30 derniers jours, vous pourriez être en mesure de trouver dans le reflog utilisant les éléments suivants:
Recherche pour le nom de la branche dans le reflog et note la
HEAD{x}
point ou la validation d'identité.Re-créer la branche à partir de la Reflog TÊTE point:
Re-créer la branche à partir de la validation ID:
Vous pouvez les extraire de la validation de l'ID et de créer une branche de ce point de validation:
reflog
suivie pargit branch <branch-name> <commit>
. (Il vous manque un argument de là). Si, pour une raison étrange, vous ne voulez pas d'obtenir l'original de la branche, mais il suffit de sauter de l'avant et de le fusionner dans votre commit courant, alors oui, vous pourriezgit checkout -b <branch-name>; git merge <commit>
. Je ne sais pas pourquoi ce serait par défaut de votre suggestion si.git reflog
montrera CHEF's de l'histoire. Vous avez à la recherche que pour les occurrences de l'suppriméfoo
branche. trouver "la TÊTE de@{0}" ne permet pas à tous. Voir ma réponse ci-dessous.Il est possible de demander GitHub soutien et leur demander de regarder dans le
reflog
de votre télécommande repo (comme dans ce fil par exemple).Si c'est assez proche (moins de 30 jours par défaut) à partir de la suppression, le reflog contient encore les commits qui ne sont plus référencés par n'importe quelle branche.
La création d'une branche sur l'un de ces commet de leur permettre d'être de nouveau accessible.
Pour en savoir plus sur reflog, voir "ce que le diable est un reflog et pourquoi est-il si important?"
Mise à jour: le repo propriétaire peut également interroger l'API GitHub:
Voir "Ne GitHub souvenir de commettre des Id?"
Lorsque le service a été supprimé pour un temps très long (dans mon cas, 1 an), mais vous avez ouvert un pull request pour la branche, vous pourriez être en mesure de ressusciter par la recherche dans la liste des demandes de l'histoire.
Une fois j'ai trouvé le pull request pour la branche j'ai pu restaurer la branche. Commit l'information, etc. sont également disponibles à partir de la demande d'extraction.
git reflog
vous montrera l'histoire deHEAD
. Si la branche que vous avez supprimé a été nomméfoo
, puis dans celle de sortie, vous devriez voir des lignes comme48534f5 HEAD@{0}: checkout: moving from master to foo
ou48534f5 HEAD@{1}: merge foo: Fast-forward
. Vous pouvez rechercher la sortie degit reflog
de comprendre à qui s'engagent doit être la dernière que foo souligné.Faire réaliser, que la "foo" reflog fichier lui-même est supprimé lorsque foo a été supprimé, mais depuis que le CHEF de l'reflog est différent, il existe toujours.
Prendre un coup d'oeil à ce script python pour github événements.
https://github.com/jimzucker/githubutils/blob/master/githubreflog.py
Je l'ai créé pour tirer des événements et de les rendre lisibles, vous pouvez pipe dans de grep et de regarder pour la branche qui vous intéresse. si il y a assez de l'histoire, vous verrez l'événement de suppression de la succursale en question, la ligne suivante sera la dernière poussée de l'événement et c'est le csa qui vous intéresse.