J'essaie de déplacer uniquement le contenu d'un référentiel (par exemple, repo1) vers un autre référentiel existant (par exemple, repo2) à l'aide des commandes suivantes.
- git clone repo1
- git clone repo2
- cd repo1
- origine git
- git remote ajouter repo1
- git Push
Mais ça ne marche pas. J'ai examiné l'autre message similaire, mais je n'ai trouvé que le déplacement du dossier, pas le contenu.
Je pense que les commandes que vous recherchez sont:
cd repo2
git checkout master
git remote add r1remote **url-of-repo1**
git fetch r1remote
git merge r1remote/master --allow-unrelated-histories
git remote rm r1remote
Après ça repo2/master
contiendra tout de repo2/master
et repo1/master
, et aura également l'histoire de tous les deux.
Parfaitement décrit ici https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
Tout d'abord, nous devons extraire toutes les branches distantes et les balises du référentiel existant vers notre index local:
git fetch Origin
Nous pouvons rechercher les branches manquantes pour lesquelles nous devons créer une copie locale:
git branch -a
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:
git remote add new-Origin [email protected]:manakor/manascope.git
Nous sommes maintenant prêts à envoyer toutes les branches et étiquettes locales à la nouvelle télécommande nommée new-Origin:
git Push --all new-Origin
git Push --tags new-Origin
Faisons de new-Origin la télécommande par défaut:
git remote rm Origin
Renommez new-Origin en Origin seulement, pour qu’il devienne la télécommande par défaut:
git remote rename new-Origin origin
Si vous cherchez à préserver les branches existantes et à valider l'histoire, voici une solution qui a fonctionné pour moi.
git clone --mirror https://github.com/account/repo.git cloned-repo
cd cloned-repo
git Push --mirror {URL of new (empty) repo}
Supposons maintenant que vous souhaitiez synchroniser les dépôts source et de destination pendant un certain temps. Par exemple, il existe toujours une activité dans le référentiel distant actuel que vous souhaitez importer dans le référentiel nouveau/de remplacement.
git clone -o old https://github.com/account/repo.git my-repo
cd my-repo
git remote add new {URL of new repo}
Pour afficher les dernières mises à jour (en supposant que vous n'avez pas de modifications locales):
git checkout {branch(es) of interest}
git pull old
git Push --all new
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.
Cela a permis de déplacer mon dépôt local (y compris l'historique) vers mon dépôt distant github.com. Après avoir créé le nouveau référentiel vide sur GitHub.com, j'utilise l'URL de l'étape trois ci-dessous et cela fonctionne très bien.
git clone --mirror <url_of_old_repo>
cd <name_of_old_repo>
git remote add new-Origin <url_of_new_repo>
git Push new-Origin --mirror
J'ai trouvé ceci à: https://Gist.github.com/niksumeiko/8972566
L'approche la plus simple si le code est déjà suivi par Git, puis configurez le nouveau référentiel comme "Origine" sur Push to.
cd existing-project
git remote set-url Origin https://clone-url.git
git Push -u Origin --all
git Push Origin --tags
Selon @ Dan-Cohn, Mirror-Push est votre ami ici. Ceci est mon aller à la migration des pensions:
Mise en miroir d'un référentiel
1Open Git Bash.
2. Créez un clone nu du référentiel.
$ git clone --bare https://github.com/exampleuser/old-repository.git
3. Mirror-Push vers le nouveau référentiel.
$ cd old-repository.git
$ git Push --mirror https://github.com/exampleuser/new-repository.git
4.Retirez le référentiel local temporaire créé à l'étape 1.
$ cd ..
$ rm -rf old-repository.git
Référence et crédit: https://help.github.com/en/articles/duplicating-a-repository
On dirait que tu es proche. En supposant qu'il ne s'agisse pas d'une faute de frappe dans votre soumission, l'étape 3 devrait être cd repo2
Au lieu de repo1. Et l'étape 6 devrait être git pull
Et non pas Push. Liste retravaillée:
1. git clone repo1
2. git clone repo2
3. cd repo2
4. git remote rm Origin
5. git remote add repo1
6. git pull
7. git remote rm repo1
8. git remote add newremote
J'ai utilisé la méthode ci-dessous pour migrer mon stock GIT Stash vers GitLab en conservant toutes les branches et l'historique de validation.
Cloner l'ancien référentiel en local.
git clone --bare <STASH-URL>
Créez un référentiel vide dans GitLab.
git Push --mirror <GitLab-URL>