Je travaille sur un projet basé sur CakePHP, hébergé sur GitHub. Mon projet est hébergé sur Bitbucket. Les deux utilisent git . En gros, j'aimerais créer un 'fork' (je ne sais pas si j'utilise les bons termes, car je suis nouveau sur git ) de CakePHP dans mon référentiel Bitbucket, afin de pouvoir obtenir les mises à jour sans avoir à télécharger tout le fichier CakePHP Zip/tar et remplacer le dossier, puis valider et Push, mais peut-être avec une "fusion" (?).
Il n'est pas possible d'envoyer une "demande de tir" sur différents sites aujourd'hui. J'ai ajouté une demande de fonctionnalité à cet effet dans l'outil de suivi des problèmes de Bitbucket: # 3288 . Je vous suggère de vous ajouter en tant que disciple si vous voulez suivre cela.
Cependant, vous pouvez toujours déplacer le code source de GitHub vers Bitbucket sans avoir à télécharger des fichiers Zip ou des archives. Vous faites un clone à partir de GitHub et appuyez sur Bitbucket:
$ git clone https://github.com/cakephp/cakephp
$ cd cakephp
$ git Push [email protected]:mg/cakephp.git master
J'ai crée mg/cakephp
en tant que référentiel Git vide dans Bitbucket. De cette façon, vous pouvez pousser/extraire les changesets de GitHub vers Bitbucket.
Le flux de travail ci-dessous ajoute le référentiel github en tant que nouvelle télécommande appelée sync
et la base de données bitbucket en tant que Origin
. Il ajoute également une branche appelée github
pour suivre le référentiel github et une branche appelée master
pour suivre le référentiel du fond du paquet. Cela suppose que vous ayez un référentiel de bitbucket appelé "myrepository" qui est vide.
# setup local repo
mkdir myrepository
cd myrepository
git init
# add bitbucket remote as "Origin"
git remote add Origin ssh://[email protected]/aleemb/myrepository.git
# add github remote as "sync"
git remote add sync https://github.com/aleemb/laravel.git
# verify remotes
git remote -v
# should show fetch/Push for "Origin" and "sync" remotes
# first pull from github using the "sync" remote
git pull sync
# setup local "github" branch to track "sync" remote's "master" branch
git branch --track github sync/master
# switch to the new branch
git checkout github
# create new master branched out of github branch
git checkout -b master
# Push local "master" branch to "Origin" remote (bitbucket)
git Push -u Origin master
Maintenant, vous devriez avoir la branche locale github
qui suit la branche master
du dépôt de github. Et vous devriez avoir la branche locale master
suivre le repo de bitbucket (master
branche par défaut).
Cela facilite l’extraction de la branche github
, puis la fusion de ces modifications dans la branche master
(la préférence de rebase est préférable à la fusion), puis vous pouvez appuyer sur la variable master
. branche (va le pousser à bitbucket).
Si vous voulez garder votre repo à jour, utilisez deux télécommandes: Github (upstream
) et Bitbucket (Origin
) comme ceci:
# Clone original CakePHP source code from Github
git clone --mirror https://github.com/cakephp/cakephp
cd cakephp
# Rename remote from `Origin` to `upstream`
git remote rename Origin upstream
# Add your Bitbucket repo (this is where your code will be pushed)
git remote add Origin https://bitbucket/your/repo.git
# Push everything to Bitbucket
git Push --mirror Origin
Pour extraire les mises à jour de CakePHP à partir de Github:
git pull upstream master
Pour transmettre vos modifications de code à Bitbucket:
git Push Origin master
Lors de la création d'un nouveau référentiel dans BitBucket, cliquez sur le bouton Import repository
en haut à droite. Entrez l'URL https trouvée en cliquant sur Clone or download
dans Github pour le référentiel que vous souhaitez créer.
Donnez un nom à votre référentiel, configurez vos paramètres de confidentialité et le tour est joué!
Je suppose que vous voulez simplement télécharger facilement le référentiel avec votre projet ... et que vous ne contribuerez PAS à cakePHP, n'est-ce pas?
si c'est le cas, il vous suffit d'ajouter une référence externe à votre rapport.
SVN: équivalent externe en GIT?
Et plus tard, même si vous voulez contribuer à cakePHP, vous pouvez le faire sans problème grâce au dépôt initial.