git comment nettoyer un clone de référentiel et reclone
Je suis en utilisant une clé usb que j'ai cloné mon repo, je peux transférer mon travail à la maison et vice versa. De nombreuses fois l'usb a des problèmes et corrompt le référentiel. Si j'essaie de le nettoyer et de reclone il montre tous les vieux (auto) fichiers supprimés, et tous l'origine de fichiers tel que modifié.
J'ai essayé de nettoyer la cloné repo par la suppression de dossier ou le renommer, ou de l'événement à supprimer .git et reclone mais il affiche toujours le vieux fichiers supprimés. Est-il un moyen de le réparer?
Sauf si vous travaillez sur la clé USB directement, le
.git
dossier est tout ce que les questions. La copie de travail n'est pas pertinent, parce qu'il n'est pas utilisé par quoi que ce soit. Une "corruption" ne se produit que si git fsck
vous dit il y a un problème, mais je ne pense pas que ce soit le cas.OriginalL'auteur dotoree | 2012-01-31
Vous devez vous connecter pour publier un commentaire.
Je voudrais vraiment vous recommandons, afin d'avoir une version propre de votre pension, à faire un paquet.
(Voir
git bundle
de la page de manuel).Assurez-vous que vous n'oubliez pas les balises dans votre bundle.
Des Alternatives sont discutées au "push vs bundle vs tar zcvf — de sauvegarde local .git".
De cette façon, vous obtenez seulement un fichier de sauvegarde sur votre clé usb et vous pouvez cloner/chercher à partir de ce fichier bundle).
Un fichier est beaucoup plus difficile à corrompre 😉
J'ai trouvé la re-création du bundle à partir de zéro plus facile que d'essayer de mettre à jour un paquet. En effet, Vous ne pouvez pas pousser facilement à un ensemble. Cependant, une fois (re)créé et enregistré sur votre clé USB, il se comporte comme un nu-repo, et vous pouvez tirer à partir de ce faisceau de la même manière que vous le feriez à partir d'un nu-repo: ajouter à votre machine Une distance repo (git remote add usbrepo /chemin/vers/bundle), et tirer à partir d'elle.
OriginalL'auteur VonC
Vous devriez être en utilisant un nu référentiel, c'est un sans un arbre, sur la clé USB. Dépôt nu est créé avec
git init --bare
ougit clone --bare
.La "corruption", vous voyez, parce que git push ne pas mettre à jour le répertoire de travail d'un non-nue référentiel cible. Si la copie de travail est extrait de la direction générale, vous êtes en poussant, il en résulte non valide de l'état de la copie de travail.
Cependant, il n'y a absolument aucune raison d'avoir une copie de travail, à moins que vous dire de travailler directement à partir de la clé USB. Donc il suffit de ne pas le créer, il n'est pas nécessaire pour rien.
En revanche, si vous avez l'intention de travailler à partir de la clé USB, soit toujours tirer (qui met à jour la copie de travail, bien sûr) ou d'installer des crochets pour mettre à jour la copie de travail (il y a deux façons, selon la façon dont vous l'intention de travailler avec elle).
OriginalL'auteur Jan Hudec