2011-07-28 1 views
2

Dernièrement, j'ai réalisé que j'avais perdu des fichiers dans un de mes projets hébergé sur Github, jquery.transition.js. J'ai cherché dans l'historique de commit pour essayer de trouver quand et comment cela s'est passé mais je n'ai trouvé aucun commit lié.Perdu quelques fichiers dans un projet version Git et ne pouvait les récupérer ... dans une fourchette sur Github

Je regardai à son graphe de réseau sur Github et trouvé tous les commits et les fichiers dans la fourchette de quelqu'un d'autre: https://github.com/ammonkc/jquery.transition.js/tree/gh-pages

Je me demande comment cela est possible. Se pourrait-il que j'ai supprimé par inadvertance la branche gh-pages et l'ai écrasée? Cela ne devrait-il pas apparaître dans l'historique de validation?

+0

Comment avez-vous une recherche de l'histoire? Avez-vous utilisé 'git log - that/missing/file'? – Tekkub

Répondre

1

Ce qui habituellement peut arriver est:

  • une branche supprimé, ou une poussée forcée où les commettras ne sont plus référencés
  • une fourchette fait avant cet événement qui encore référencé ledit engage

Un tel push (avec un historique réécrit sans ces commits) ne peut se produire que s'il est "forcé" (push --force), mais ne laisserait pas de trace dans l'historique visible (puisque les commits ont été réécrits).
Même dans le pire des cas, les commits perdus sont toujours mentionnés dans les reflog, que vous pouvez:

  • demandent au soutien GitHub (ils peuvent créer un référencement de ladite branche commits perdu).
  • ou (en tant que propriétaire de repo) requête les événements GitHub API:
    Voir "Does GitHub remember commit IDs?"
+0

Merci pour votre réponse détaillée. –

Questions connexes