143 votes

GIT: Comment puis-je mettre à jour mon nu repo?

J'ai créé un nu-pensions de publier mon référentiel, mais je ne peux pas comprendre comment mettre à jour le nu-repo avec l'état actuel du dépôt principal.

88voto

Thomas Points 63635

Si vous souhaitez dupliquer tous les objets de la principale pensions de titres, cela à l'intérieur de la principale repo:

git push --all <url-of-bare-repo>

Sinon, faire une extraction à l'intérieur de la nue-repo:

git fetch <url-of-main-repo>

Vous ne pouvez pas faire un pull, parce que un pull veut fusionner avec HEAD, dont un nu-pensions de ne pas avoir.

Vous pouvez ajouter ces télécommandes afin de vous épargner un peu de taper dans l'avenir:

git remote add <whatever-name> <url-of-other-repo>

Ensuite, vous pouvez simplement faire

git push --all <whatever-name>

ou

git fetch <whatever-name>

selon ce repo vous êtes dans. Si <whatever-name> est origin, vous pouvez même la laisser complètement.

Avertissement: je ne suis pas un git gourou. Si j'ai dit quelque chose de mal, j'aimerais être éclairée!

Mise à jour: Lire les commentaires!

75voto

austen Points 1083

J'ai créé un référentiel à l'aide de la commande suivante

git clone --bare <remote_repo>

Ensuite, j'ai essayé de mettre à jour le nu-clone à l'aide de la réponse de Thomas, mais il ne fonctionne pas pour moi. Pour obtenir le dépôt nu de mise à jour (qui est ce que je pense Let_Me_Be a la demande), j'ai dû créer un miroir du référentiel:

git clone --mirror <remote_repo>

Ensuite, j'ai pu exécuter la commande suivante dans le miroir au référentiel de saisir le principal référentiel les mises à jour:

git fetch --all

Je suis tombé sur cette solution en lisant Miroir un Dépôt Git En Tirant

57voto

Colin D Bennett Points 1613

La seule solution, en plus de recréer avec git clone --mirror est de Gregor:

git config remote.origin.fetch 'refs/heads/*:refs/heads/*'

vous pouvez alors git fetch et vous pourrez voir les mises à jour. La chose étrange est que, avant cette, même si il y a un remote configuré, il n'a pas de branches énumérées en git branch -a.

48voto

antak Points 2202

En supposant que:

$ git clone --bare https://github.com/.../foo.git

Chercher avec:

$ git --git-dir=foo.git fetch origin +refs/heads/*:refs/heads/* --prune

Remarque: --git-dir=foo.git n'est pas nécessaire si vous cd le dossier.

3voto

Philipp Points 21479

Ajouter le dépôt nu comme un dépôt distant, puis utilisez git push.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X