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, puisque je suis nouveau sur git ) de CakePHP dans mon référentiel Bitbucket, afin de pouvoir obtenir les mises à jour sans avoir besoin de télécharger tout le zip / tar de CakePHP et de remplacer le dossier, puis de valider et de pousser, mais peut-être avec un 'merge' (?).
161
Réponses:
Il n'est pas possible d'envoyer une "pull request" sur différents sites aujourd'hui. J'ai ajouté une demande de fonctionnalité pour cela dans le suivi des problèmes Bitbucket: # 3288 . Je vous suggère de vous ajouter en tant que suiveur si vous souhaitez suivre cela.
Cependant, vous pouvez toujours déplacer la source de GitHub vers Bitbucket sans avoir à télécharger de fichiers zip ou de tarballs. Vous créez un clone à partir de GitHub et poussez vers Bitbucket:
J'ai d'abord créé
mg/cakephp
un référentiel Git vide dans Bitbucket. De cette façon, vous pouvez pousser / extraire des ensembles de modifications de GitHub vers Bitbucket.la source
cd cakephp
entre les deux commandes. Évident pour les non-débutants, oui, mais les débutants pourraient se demander pourquoi cela ne fonctionne pas.fork
. Les branches et les balises ne sont PAS copiées sur 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 télécommande bitbucket en tant queorigin
. Il ajoute également une branche appeléegithub
pour suivre le référentiel github et une branche appeléemaster
pour suivre le référentiel bitbucket. Cela suppose que vous avez un référentiel bitbucket appelé "myrepository" qui est vide.Configurer les télécommandes
Configurer les branches
Vous devriez maintenant avoir la
github
branche locale qui suit la branche du dépôt githubmaster
. Et vous devriez avoir lamaster
branche locale qui suit le dépôt bitbucket (master
branche par défaut).Cela facilite le tirage sur la
github
branche, puis la fusion de ces modifications sur lamaster
branche (rebase préféré à la fusion) et vous pouvez ensuite pousser lamaster
branche (la poussera vers bitbucket).la source
--set-upstream
est obsolète ... Mais cela fonctionne tant que vous créez lagithub
branche avant d'essayer de définir le dépôt en amont.git fetch
etgit branch --track github sync/master
git checkout github
etgit checkout -b master
après la commande git branch. Vous vous retrouverez avec ces branches (git branch -a
): github, master, remotes / origin / master, remotes / sync / masterSi vous souhaitez garder votre dépôt à jour, utilisez deux télécommandes: Github (
upstream
) et Bitbucket (origin
) comme ceci:Pour extraire les mises à jour de CakePHP depuis Github:
Pour transmettre vos modifications de code à Bitbucket:
la source
git
commande, non? C'est la voie à suivre ....git push --all --mirror origin
. Réponse mise à jour.fatal: --all and --mirror are incompatible
Aussi:git pull upstream master
génère une erreur fatale.fatal: Couldn't find remote ref 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 lorsque vous cliquezClone 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 c'est parti!
la source
Je suppose que vous voulez simplement télécharger facilement le référentiel avec votre projet ... et que vous ne contribuerez PAS au cakePHP, n'est-ce pas?
si tel est le cas, il vous suffit d'ajouter une référence externe à votre dépôt.
SVN: équivalent externe dans GIT?
Et plus tard, même si vous souhaitez contribuer à cakePHP, vous pouvez simplement le faire dans le dépôt d'origine.
la source
J'ai remarqué que depuis la réponse de @Martin Geisler, Bitbucket a activé une fonctionnalité permettant d'importer des référentiels depuis github.com
J'ai réussi à importer un dépôt privé de github.com dans un dépôt privé sur bitbucket.org
Voici les étapes :
Notez le lien du référentiel d'importation dans le coin supérieur droit de la capture d'écran
la source