2017-07-18 3 views
0

Je ne suis pas tellement dans GIT et j'ai le problème suivant que je ne peux pas underestand.Pourquoi je ne peux pas tirer le nouveau code sur le référentiel BitBucket? Dit "déjà à jour" mais je n'ai pas tout le code poussé

J'utilise un référentiel BitBucket où je travaille avec une autre personne.

J'ai essayé d'obtenir le nouveau code poussé par mon coleegue, faire:

git pull 

mais il me dit:

$ git pull 
Already up-to-date. 

Mais le dépôt BitBucket (il est dans la à distance branche principale, je peux le voir dans le site Web de BitBucket) il y a du code que je n'ai pas sur mon système local.

J'ai donc essayé d'obtenir la liste de toutes les branches éloignées par:

$ git branch -r 
    origin/GLIS-Trigger-TAG 
    origin/HEAD -> origin/master 
    origin/master 

Alors, que signifie exactement? Je montre origine/HEAD? Ce que cela veut dire? Ce qui est origine/HEAD

exactement je à basculer sur la branche origine /maître pour obtenir ce code?

Quel pourrait être le problème et comment y remédier?

+0

Quelle est la sortie de 'git branch -avv'? – zigarn

+0

Si rien ne vient et que vous savez qu'il manque du code, vous êtes probablement dans la mauvaise branche ... –

Répondre

1

Plusieurs questions vous ont été posées, et ces questions suggèrent un peu plus de confusion. Alors:

J'ai donc essayé d'obtenir la liste de toutes les branches éloignées par:

$ git branch -r 
    origin/GLIS-Trigger-TAG 
    origin/HEAD -> origin/master 
    origin/master 

Alors, que signifie exactement? Je pointe vers l'origine/HEAD? Ce que cela veut dire?Quel est exactement l'origine/HEAD

Qu'est-ce que cela signifie est que votre « références de succursales distantes » repo a un nom pour locaux à distance 'origin, et sur cette distance, il voit les branches nommées master et GLIS-Trigger-TAG. La branche par défaut de la télécommande est master (ce que dit l'entrée origin/HEAD).

Rien de cela ne vous indique où vous pointez. Exécution git branch sans le -r listerait les branches locales, et si vous êtes sur une branche locale alors le nom de cette branche sera précédé d'un *. Vous n'êtes jamais "sur" une branche distante; Si vous checkout à une référence de branche distante, vous serez dans l'état de tête détaché (pas sur une branche), car les validations locales ne font pas avancer les références de branche distantes. Est-ce que je dois activer la branche origine/maître pour obtenir ce code?

Non, comme je le notais essayer de faire cela vous mis en état HEAD détaché (ce qui est parfois très bien, mais n'est pas ce que vous voulez ici.)

Ma compréhension est que vous voyez les changements sur la branche master de la télécommande; donc à la place, vous devez passer à la branche localemaster - car il est très probablement configuré pour suivre origin/master. (Il est par défaut, pour qu'il en soit autrement, vous auriez dû délibérément mis en place une configuration différente.)

git checkout master 
git pull 

Vous pouvez également obtenir des mises à jour de tous les refs à distance par

git fetch 

Ensuite, vous seriez en mesure de vérifier l'état d'une branche « mise à jour » dans un certain nombre de façons, par exemple en cochant une branche et fonctionnement

git status 

ou w sans avoir à vérifier les branches par

git diff branch_name origin/branch_name 
1

A partir de votre terminal, tapez juste

git branch 

ce listera toutes les branches et indiquer la branche que vous êtes actuellement.

Vérifiez si elle est la branche principale. Si ce n'est pas le cas, vous devez passer à la branche principale pour obtenir les modifications.

git checkout master 

puis,

git pull 

Mais d'autre part, vous voulez que les changements de maître dans la branche courante, alors il n'y a pas besoin de se déplacer à maîtriser, mais plutôt d'utiliser cette commande pour obtenir les changements dans la branche principale à votre branche actuelle

git pull origin master