En déplaçant le dépôt Git de contenu vers un autre référentiel de la préservation de l'histoire
Je suis en train de déplacer le contenu d'un référentiel (dire repo1) à un autre référentiel existant (dire repo2) en utilisant les commandes suivantes;
- git clone repo1
- git clone repo2
- cd repo1
- git remote rm origine
- git remote add repo1
- git push
Mais sa ne fonctionne pas. J'ai revu l'autre poste similaire mais je n'ai trouvé de déplacer le dossier pas le contenu.
- Voulez-vous d'avoir le contenu de repo1 comme une branche sur repo2, ou dans le cadre du master, de sorte que les dossiers des deux repos cohabitent dans votre travail dir?
- Je veux le déplacer, comme une partie du maître.
- Ce tutoriel est parfait! smashingmagazine.com/2014/05/19/...
Vous devez vous connecter pour publier un commentaire.
Je pense que les commandes que vous recherchez sont:
Après que
repo2/master
contient tous les éléments derepo2/master
etrepo1/master
, et aurez également l'histoire de deux d'entre eux.url-of-repo1
... Mais, si j'ai utilisé une autre recette? Le clonage avec moderne avec git--mirror
(comme dans la recette du lien) sera le même? help.github.com/articles/duplicating-a-repository/...git merge
commande, en remplaçant le nom de la direction générale, vous êtes en cours de migration. Cela pourrait peut-être être inclus dans le script, mais je n'avais que quelques branches de migrer, donc je n'ai pas pris la peine de script il.repo1
dans un répertoire spécifique derepo2
? Actuellement, c'est l'extraction de tous les contenus dans la racine derepo2
?repo1
dans un sous-dossier (à l'intérieur derepo1
) avant de procéder à la fusion.Parfaitement décrit ici https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
Tout d'abord, nous avons à récupérer la totalité de la distance des branches et des tags à partir du référentiel existant à notre index local:
Nous pouvons vérifier qu'il ne manque aucun branches que nous avons besoin de créer une copie locale de:
Nous allons utiliser le SSH-cloné URL de notre nouveau référentiel pour créer une nouvelle télécommande dans notre dépôt local:
Maintenant, nous sommes prêts à repousser toutes les branches locales et des tags à la nouvelle télécommande nom de nouvelle-origine:
Faisons de nouveau l'origine de la distance par défaut:
Renommer le nouveau-l'origine à la juste origine, de sorte qu'il devient à distance par défaut:
git checkout BranchName
, puis poussez la branche à distance des pensions de nouveau avecgit push --all new-origin
mais merci beaucoupSi vous êtes à la recherche de préserver les branches existantes et de s'engager de l'histoire, voici une méthode qui a fonctionné pour moi.
Maintenant, supposons que vous vouliez garder la source et la destination de repos dans la synchronisation pour une période de temps. Par exemple, il y a toujours de l'activité dans le courant de l'repo distant que vous souhaitez apporter à la nouvelle/de remplacement des pensions.
De tirer vers le bas les dernières mises à jour (en supposant que vous n'avez pas de modifications locales):
NB: je n'ai pas encore utiliser submodules, donc je ne sais pas quelles autres mesures pourraient être nécessaires si vous en avez.
Cette travaillé pour déplacer mon local de pensions de titres (y compris comme antécédent) de ma télécommande github.com repo. Après la création du nouveau vide github GitHub.com j'utilise l'URL dans l'étape trois ci-dessous et il fonctionne très bien.
J'ai trouvé ce à: https://gist.github.com/niksumeiko/8972566
Approche la plus simple si le code est déjà suivi par Git puis définissez nouveau référentiel en tant que votre "origine" pour le pousser à.
On dirait que vous êtes à proximité. En supposant que ce n'est pas seulement une faute de frappe dans votre soumission, l'étape 3 doit être
cd repo2
au lieu de repo1. Et à l'étape 6 devrait êtregit pull
pas pousser. Retravaillé liste:J'ai utilisé la méthode ci-dessous pour migrer mon GIT Stash à GitLab par le maintien de toutes les branches et de commettre l'histoire.
Clone de l'ancien dépôt local.
Créer un dépôt vide dans GitLab.
Comme par @Dan-Cohn répondre Miroir-push est votre ami ici. C'est mon aller à la migration de repos:
Miroir d'un référentiel
1.Ouvrir Git Bash.
2.Créer un nu-clone du dépôt.
3.Miroir-pousser vers le nouveau référentiel.
4.Retirez les locaux temporaires de dépôt que vous avez créé à l'étape 1.
De référence et de Crédit: https://help.github.com/en/articles/duplicating-a-repository
Il y a beaucoup de compliqué réponses, ici; toutefois, si vous n'êtes pas concernés de la direction générale de la préservation, tout ce que vous devez faire est de réinitialiser la télécommande d'origine, de définir, en amont, et de pousser.
Cette travaillé pour préserver l'ensemble de la validation de l'histoire pour moi.