2009-12-13 3 views
8

J'ai un projet privé hébergé sur github. J'ai une branche de production de ce projet. J'ai une nouvelle machine et j'ai besoin de réparer quelque chose sur la production. C'est ce que j'ai fait.github comment commander caisse de production

git clone [email protected]:userid/project.git 
# now I have master branch 
git co -b production 
git pull origin production 

En utilisant le mécanisme ci-dessus, je suis en mesure d'obtenir la branche de production, mais j'obtiens des conflits de fusion que je ne veux pas faire face à ce moment.

Existe-t-il une manière plus simple d'obtenir le code de branche de production sur ma machine locale?

+1

Vous apparaissez De même confus quant à ce qui se passe réellement avec toutes les branches que je me souviens être quand j'étais nouveau connard. En jetant un coup d'œil à l'affichage graphique des ramifications de 'gitk --all', j'ai beaucoup appris sur ce qui se passe réellement. – ndim

Répondre

18

Vous pouvez checkout directement la branche à distance après l'aller chercher

git fetch origin 
git branch -f remote_branch_name origin/remote_branch_name 
git checkout remote_branch name 

ou moins:

git checkout -b production origin/production 

Vous travaillerez directement à partir de la copie extraite d'origine/branche de production (pas de conflit là-bas) .

En faisant

git co -b production 
git pull origin production 

Vous essayez de fusionner la branche de production à distance dans votre maître (dans une branche « production » locale, ce qui signifie potentiellement conflits si votre maître a localement une histoire différente de la origine à distance/branche de production. par lui-même

5

git checkout -b production sera une nouvelle caisse branche appelée production basée sur la branche que vous avez actuellement vérifié, le maître.

Il est probable que ce que vous vouliez vraiment faire était:

git checkout -b production origin/production