2010-03-19 5 views
4

J'utilise Git pour mon contrôle de version depuis un moment maintenant, mais je n'ai pour l'instant utilisé que la branche maître unique pour tout mon développement. Au fur et à mesure que mes projets prennent de l'ampleur, il est temps que je m'inquiète des succursales stables/de développement et de l'étiquetage des versions. J'ai lu beaucoup d'articles sur le branchement de Git, mais je n'arrive pas à comprendre les concepts derrière leur fonctionnement, et cela me cause de la frustration quand j'essaie de configurer correctement mes branches.Git: Questions de branchement apparemment simples

Voici ma situation: J'ai un projet qui est un tas de tâches de rake spécifiques à la création de notre site web sur un serveur particulier. En ce moment, nous utilisons un système basé sur Debian, mais nous sommes sur le point de basculer vers un système basé sur Ubuntu, donc je voudrais (branche) mon projet et créer une branche séparée pour chaque distribution de serveur et je voudrais que chaque branche pour être en mesure de tirer facilement dans tous les changements de code génériques de la branche maître lorsque je cours git pull dans les deux branches. D'après ce que j'ai lu, cela peut être réalisé en suivant la branche principale, mais je n'arrive pas à le faire fonctionner correctement. En plus de cela, j'ai aussi besoin de commencer à versionner un projet différent afin que je puisse le sortir, mais je ne connais pas vraiment la manière standard de Git d'y parvenir. Chez moi, on utilisait TFS (ce que je détestais) et c'était assez simple: on créait une branche à partir du master et on l'appelait "Version 2". Ensuite, nous ferions en sorte que la version 2 soit stable et corrigeons tous les bogues, puis de temps en temps, nous fusionnerions les changements de version 2 dans la branche master. Est-ce le moyen de Git d'y parvenir, et si oui, comment vais-je faire?

Donc, pour conclure, je demande les deux suivants séparés (mais très liés) questions:

  1. Comment puis-je créer une branche à distance (sur GitHub) qui permet de suivre automatiquement les changements dans le maître afin que Je peux courir git pull dans la nouvelle branche et avoir tous les changements principaux apportés dedans; et
  2. Quelle est la meilleure méthode pour la version de mon projet et pouvez-vous donner quelques exemples de commandes?

Merci beaucoup, et s'il vous plaît faites le moi savoir si quelque chose a besoin de clarification!

+0

Passer d'un système basé sur Debian à un système basé sur ubuntu est une déclaration étrange. Ubuntu est un système basé sur Debian. –

+0

@William Pursell - Oui en effet, et cela n'a pas posé beaucoup de problèmes à cause de cela, cependant, il y a eu quelques petites différences et nous allons utiliser les deux systèmes, un pour la production, et l'autre pour le développement, donc J'ai besoin de créer une branche séparée (essentiellement pour suivre les modifications du fichier de configuration). –

Répondre

3

Si je vous comprends bien, je ne pense pas que vous utilisez le suivi correctement. Le suivi est utilisé, par exemple, pour suivre les différences entre une branche locale et une copie distante de cette même branche. Votre branche "version 2" ne doit pas suivre le maître. Votre maître local doit suivre l'origine/le maître (le repo distant). Au lieu de suivre (si je vous comprends bien du tout), vous devriez utiliser rebase. Lorsque maître a de nouveaux correctifs que vous voulez dans votre version 2 branche, alors vous faites (en supposant que vous êtes actuellement sur la version 2 branche):

git rebase maître

et espère qu'il n'y a pas de conflit pour que vous résoudre. Rebasing peut être encore une autre boîte de Pandore mais c'est vraiment pas mal. J'ai seulement utilisé git environ 6 mois, juste au travail, et après la bosse initiale il a navigué en douceur.

Questions connexes