Git: Comment cloner le premier commit?
Quelqu'un pourrait-il me dire comment faire pour cloner le premier commit? Je ne veux pas supprimer les derniers commits, il suffit de faire une copie clone de l'état initial, donc je peux récupérer certains fichiers.
source d'informationauteur igniteflow
Vous devez vous connecter pour publier un commentaire.
Pour répondre à la question je pense que tu voulais dire:
Vous pouvez obtenir la totalité de votre dépôt dans l'état de la première s'engager avec:
Après que vous avez fini de déconner, vous pouvez le faire
git checkout master
pour revenir là où vous étiez.Et vous pouvez obtenir les fichiers dans leur état à partir de la première s'engager avec:
De nouveau, après vous avez terminé, vous pouvez le faire
git checkout master <file or directory>
pour revenir là où vous étiez.Il n'y a pas besoin de "cloner" un commit, je suppose que vous voulez dire cloner le dépôt, et découvrez le premier commit?). Bien sûr, si pour quelque raison vous ne pouvais pas supporter de modifier les fichiers dans votre référentiel (par exemple, ne veulent pas faire de votre construire à partir de la date), vous pouvez bien sûr de le cloner, puis faire exactement la même chose dans la cloné repo.
Je crois que j'ai envie de faire la même chose. La caisse de l'initiale de s'engager, et de la direction générale à partir de là. Je ne suis pas sûr de la réponse acceptée. Mais je suppose que cela pourrait (en partie) de répondre à la question d'origine. Après la lecture de ce thread, j'irai avec certains scripts bash autour de
Je suppose que j'espérais qu'il y aurait quelques commettre ou de l'arbre-ish de référence pour cette.
Par conséquent, vous pouvez visiter le premier à valider avec la commande suivante:
2017 mise à jour: depuis '12 (GIT 1.8.1), nous avons une meilleure option: git rev-liste. Voir d'autres réponses ici ou KyleMit au super-utilisateur pour une meilleure façon de script.
Si par "premier commit", tu veux dire que le parent s'engager d'une branche qui n'a pas de parents, lui-même, alors vous voulez utiliser la commande git-rev-liste à faire. Utilisez simplement
git rev-list --max-parents=0 HEAD
Qui permettra à votre "Initial s'engager" pour l'actuel CHEF. L'utilisation de maître si vous de la liste, ou n'importe quel autre enfant de la révision de la spécification. wrap que dans
$(...)
afin de l'utiliser dans une expression, telles que:git checkout $(git rev-list --max-parents=0 HEAD)
Je pense que tout ce que vous devez faire est de créer une nouvelle branche à partir de l'original commit que vous voulez, vérifier que, et fusionner ensuite en arrière dans la TÊTE de la branche dans laquelle vous travaillez.
Si abcxyz... est le SHA1 du commit que vous voulez et vous travaillez dans la branche master, c'est généralement ce que vous aimeriez faire: