web-dev-qa-db-fra.com

Bifurquer de GitHub à Bitbucket

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" (?).

150
entropid

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.

139
Martin Geisler

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.

Configuration des télécommandes

# 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

Branches d'installation

# 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).

75
aleemb

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
28
Zubin

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é!

15
shmuli

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.

0
gcb