J'essaie de déplacer uniquement le contenu d'un référentiel ( repo1
) vers un autre référentiel existant ( repo2
) à l'aide des commandes suivantes:
git clone repo1
git clone repo2
cd repo1
git remote rm origin
git remote add repo1
git push
Mais ça ne marche pas. J'ai examiné un article similaire, mais je n'en ai trouvé qu'un déplaçant le dossier, pas le contenu.
git
merge
repository
migrate
Mario
la source
la source
Réponses:
Je pense que les commandes que vous recherchez sont:
Après cela
repo2/master
contiendra tout derepo2/master
etrepo1/master
, et aura également l'histoire des deux.la source
repo1
dans un sous-dossier (à l'intérieurrepo1
) avant de faire la fusion.Parfaitement décrit ici https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
Tout d'abord, nous devons récupérer toutes les branches et balises distantes du référentiel existant vers notre index local:
Nous pouvons rechercher toutes les branches manquantes dont nous avons besoin pour créer une copie locale de:
Utilisons l'URL clonée SSH de notre nouveau référentiel pour créer une nouvelle télécommande dans notre référentiel local existant:
Nous sommes maintenant prêts à pousser toutes les branches et balises locales vers la nouvelle télécommande nommée new-origin:
Faisons de new-origin la télécommande par défaut:
Renommez new-origin en juste origin, afin qu'il devienne la télécommande par défaut:
la source
git checkout BranchName
puis pousser à nouveau la branche vers le repo distant avecgit push --all new-origin
mais merci beaucoupSi vous cherchez à préserver les branches existantes et à valider l'historique, voici une méthode qui a fonctionné pour moi.
Supposons maintenant que vous souhaitiez synchroniser les dépôts source et de destination pendant un certain temps. Par exemple, il y a toujours une activité dans le référentiel distant actuel que vous souhaitez transférer vers le nouveau référentiel / de remplacement.
Pour afficher les dernières mises à jour (en supposant que vous n'ayez aucune modification locale):
NB: Je n'ai pas encore utilisé de sous-modules, donc je ne sais pas quelles étapes supplémentaires pourraient être nécessaires si vous les avez.
la source
L'approche la plus simple si le code est déjà suivi par Git, définissez un nouveau référentiel comme votre «origine» vers laquelle pousser.
la source
Cela a fonctionné pour déplacer mon repo local (y compris l'historique) vers mon repo github.com distant. Après avoir créé le nouveau dépôt vide sur GitHub.com, j'utilise l'URL de l'étape trois ci-dessous et cela fonctionne très bien.
J'ai trouvé ceci sur: https://gist.github.com/niksumeiko/8972566
la source
J'ai utilisé la méthode ci-dessous pour migrer mon GIT Stash vers GitLab en conservant toutes les branches et l'historique des validations.
Clonez l'ancien référentiel en local.
Créez un référentiel vide dans GitLab.
la source
On dirait que tu es proche. En supposant que ce n'est pas seulement une faute de frappe dans votre soumission, l'étape 3 devrait être
cd repo2
au lieu de repo1. Et l'étape 6 ne doitgit pull
pas être poussée. Liste retravaillée:la source
Selon la réponse de @ Dan-Cohn, Mirror-push est votre ami ici. C'est mon choix pour la migration des dépôts:
Mettre en miroir un référentiel
1.Ouvrez Git Bash.
2.Créez un clone nu du référentiel.
3.Mirror-push vers le nouveau référentiel.
4.Supprimez le référentiel local temporaire que vous avez créé à l'étape 1.
Référence et crédit: https://help.github.com/en/articles/duplicating-a-repository
la source
Il y a beaucoup de réponses compliquées, ici; cependant, si vous n'êtes pas concerné par la préservation des branches, il vous suffit de réinitialiser l'origine distante, de définir l'amont et de pousser.
Cela a permis de préserver toute l'historique des commits pour moi.
la source