Git Push clarification – Qu'est-ce qui est poussé?

Lorsque je place un directory de travail local dans un référentiel central, est-ce que toutes les twigs intermédiaires et toutes les informations de validation (de la dernière poussée à celle-ci) sont poussées?

En d'autres termes, push produit-il une réplique exacte de l'set de l'historique de mon directory de travail actuel, y compris les commits, les twigs, etc., et est donc mis à la disposition de tout autre user sortant du référentiel central?

Si tout n'est pas poussé, qu'est-ce qui est exclu?

Solutions Collecting From Web of "Git Push clarification – Qu'est-ce qui est poussé?"

Lorsque vous lancez git push , vous pouvez définir ce qui est poussé sur la command line. Par exemple, ceci

 git push origin my-branch:fooo 

pousse la twig "my-branch" de votre repository local vers la twig "fooo" à "origine".

Lorsque vous lancez git push sans aucun argument, il pousse à l'set distant pour votre twig actuelle (vous pouvez voir cela par git config branch.<branchname>.remote ) et fait ce qui est configuré dans la valeur de configuration push.default , qui, selon docs , peut être l'un des suivants:

  • nothing – ne poussez rien.
  • matching – Poussez toutes les twigs correspondantes. Toutes les twigs ayant le même nom aux deux extrémités sont considérées comme correspondant. C'est la valeur par défaut.
  • upstream – Poussez la twig actuelle vers sa twig amont.
  • tracking – synonyme obsolète pour l'amont.
  • current – pousse la twig actuelle vers une twig du même nom.

Il pousse les twigs que vous avez configurées pour ce référentiel distant. Jetez un oeil au file de configuration .git/config pour voir ce qui a été configuré.

Si vous voulez voir ce qui va pousser l'utilisation

 git remote show origin 

où vous remplacez l'origine par le nom de votre référentiel distant. Cela montre quelles twigs vont pousser à ce repo, et quel est l'état actuel des twigs.

Pour compléter les autres réponses, n'oubliez pas que git push s'occupe généralement des twigs ( refs/heads ).

  • Il ne poussera pas les balises, sauf si vous spécifiez --tags (ou --mirror ), auquel cas les refs/tags sont poussés.
  • Il ne poussera pas les notes (souvent oubliées) sauf si vous spécifiez explicitement cet espace de noms ref.