Techniquement, il n'y en a pas fait tout "à distance" des choses dans votre repo git, il y a juste les noms locaux qui doivent correspondre aux noms sur un autre, différent des pensions. Celles nommées origin/whatever
sera d'abord correspondre avec ceux sur le repo vous clonée à partir de:
git clone ssh://some.where.out.there/some/path/to/repo # or git://some.where...
fait une copie locale de l'autre repo. C'est ainsi qu'on note toutes les branches qui étaient là, et l'engage ceux reportez-vous à, et les bâtons de ceux à l'intérieur de votre repo sous le répertoire .git/refs/remotes/origin/
.
Selon combien de temps vous allez avant de vous git fetch
ou l'équivalent de mise à jour de "mon exemplaire de certains.où..il y a", ils peuvent changer leurs branches, en créer de nouveaux, et de supprimer certains. Lorsque vous faites votre git fetch
(ou git pull
ce qui est vraiment chercher plus de fusion), votre pension sera de faire des copies de leur nouveau travail et changement de tous les refs/remotes/origin/<name>
d'entrées que de besoin. C'est ce moment de l' fetch
ing qui rend tout le match (enfin, ça, et le clone initial, et certains cas d' push
ing trop de coeur à chaque fois que git a une chance de le vérifier-mais voir la mise en garde ci-dessous).
Git a normalement vous référer à votre propre refs/heads/<name>
comme juste <name>
, et la distance qu' origin/<name>
, et ça marche, tout simplement parce que c'est évident qui est qui. Il est parfois possible de créer vos propres noms de branche qui font qu'il est pas évident, mais ne vous inquiétez pas à ce sujet jusqu'à ce qu'il se passe. :-) Il suffit de donner git les noms les plus courts qui rend évident, et il va aller à partir de là: origin/master
est "où le maître était là la dernière fois que j'ai vérifié", et master
est "où le maître est ici basé sur ce que je fais". Exécutez git fetch
à la mise à jour de git sur "où le maître est là" en tant que de besoin.
Mise en garde: dans les versions de git âgés de plus de 1.8.4, git fetch
a certains modes qui ne sont pas de mise à jour "où le maître est là" (plus précisément, les modes qui ne sont pas de mise à jour à distance de branches). L'exécution git fetch origin
ou git fetch --all
, ou même juste git fetch
, n' mise à jour. L'exécution git fetch origin master
n'est pas. Malheureusement, ce "n'est pas mise à jour en mode" est déclenchée par l'ordinaire, git pull
. (Ce qui est essentiellement juste un problème mineur et est fixé dans git 1.8.4 et plus tard.)