INDEX
1) Mise en place
Commencez par créer votre nouveau repository, que l’on appellera NEW.
Ensuite, récupérez le chemin de l’ancien repository, que l’on appellera OLD.
En interne nous utilisons SourceTree comme client, donc voilà où se trouve le chemin :
Dans cette méthodo, nous avons déjà configuré NEW dans SourceTree.
2) Commandes
Ouvrez ensuite un Terminal dans le path de NEW.
Petite astuce pour les utilisateurs de SourceTree : utilisez l’icône Terminal située à droite de la barre de menus. Elle ouvrira la console pour vous et surtout exécutera la commande cd
pour vous emmener dans le bon dossier automatiquement.
Vous pouvez donc taper immédiatement la commande suivante :
➜ extranet.v2 git:(master) git remote add other ssh://<adresse de votre repository>
Notez que l’adresse dont il est ici question peut être aussi un chemin HTTP, ou bien un simple dossier sur votre machine, ou sur le réseau. Tant que c’est un repository GIT, ça marche.
Complétez par :
➜ extranet.v2 git:(master) git fetch other
Voilà, les branches et les commits sont récupérés lolcalement (pun intended).
De retour dans SourceTree, vous devriez les visualiser immédiatement :
Puisque le Terminal est ouvert dans le bon dossier, profitez-en pour augmenter la taille max de l’upload autorisée vers le remote repository. En effet puisque vous allez récupérer un repo existant, il y a fort à parier que votre premier push pèsera lourd !
La taille maximale de commits uploadables est de 1 Mb par défaut.
Vous risquez donc d’obtenir l’erreur suivante :
RPC failed; result=22, HTTP code = 411
Voici la commande pour passer à 500 MB :
➜ extranet.v2 git:(master) git config http.postBuffer 524288000
Le prochain push passera comme une lettre à la Poste, jusqu’à 500 Mo de commits à envoyer en tout cas.
3) La fusion en tant que telle
On va le faire en mode graphique, parce qu’on est en 2014 et on est sur Mac et on est pas snobs.
Un bon screenshot vaut mieux qu’on long discours :
Cette action au clic droit va puller la sous-branche feature/devis_1345_v2
, située dans la copie locale du repo OLD, dans la branche develop
de NEW.
Le comportement de SourceTree est de proposer le pull dans la branche locale sélectionnée.
En clair, pour puller dans master
au lieu de develop
, double-cliquez dessus pour l’activer (elle passe en gras) :
Vous pouvez contrôlez vos fichiers locaux et procéder aux push 🙂
Si tout est OK pour vous et que vous n’en avez plus besoin, vous pouvez effacer les références à OLD dans NEW :
➜ extranet.v2 git:(develop) git remote rm other
Ou plus simplement clic droit > Remove other :
Bon merge, les amis.
Pingback: ITALIC™ » Git: outils et commandes utiles