Je travaille à mi-temps à la maison, à mi-temps au bureau. Chaque tâche doit être effectuée dans une branche dédiée, séparée, fusionnée après examen par les pairs.
Notre projet est soutenu par Bitbucket, nous utilisons également Jira et Jenkins.
Je n'utilise qu'un seul dépôt distant et deux dépôts locaux.
J'ai un problème récurrent: des conflits surviennent entre moi (@home) et moi (@agency) ...
voici mon processus:
Lundi, au bureau, dans une succursale nommée "JamesBond007" dérivé du maître:
rm -fr repo git clone ssh:repos-url
Mardi, à la maison:
git checkout master git pull git checkout JamesBond007 git pull --rebase origin master **<-- conflict: git mergetool command needed!!!**
3 Réponses :
Le problème se produit lorsque vous rebasez la branche de travail en master à plusieurs endroits.
Chaque tâche doit être effectuée dans une branche dédiée, séparée, fusionnée après examen par les pairs.
Il existe plusieurs façons de le faire fonctionner (selon votre familiarité avec git). Sur cette base, je suppose que vous devez rebaser les journaux de validation.
Je vais suggérer une modification simple de votre flux de travail: à la fin de chaque jour, poussez toujours vers origine et supprimez votre branche locale.
# Assuming you're on JamesBond007 local branch git push [-f] origin remote/JamesBond007 git checkout master git branch -d JamesBond007
De cette façon, vous serez certain d'avoir transféré tout ce qui est supprimé localement. La prochaine fois que vous reviendrez sur le même ordinateur, vous ne souffrirez pas du problème que vous avez une branche locale qui a un commit de base différent.
J'ai une configuration très similaire et je n'ai jamais de conflits de fusion: je fais essentiellement ce que vous faites, mais je n'utilise jamais rebase de quelque façon que ce soit, jusqu'à peut-être à la toute fin, dans le cadre de la fusion vers maître.
Concrètement:
valide et pousse fréquemment pendant que je travaille, en utilisant l ' origine comme outil de sauvegarde. pull / fetch sur celui-ci, puis en me rendant au travail. git pull et je suis parti ...
Ne rebasez pas le maître. Au lieu de cela, lorsque vous arrivez au bureau le mercredi, réinitialisez votre succursale sur le même commit que vous avez utilisé à la maison lorsque vous avez terminé mardi soir.