Disons que j'ai un référentiel sur git.fedorahosted.org et que je veux le cloner dans mon compte sur github pour avoir mon propre terrain de jeu en dehors du repo plus "officiel" sur fedorahosted. Quelles seraient les étapes pour copier initialement cela? Dans github il y a ce joli bouton "fork", mais je ne peux pas l'utiliser pour des raisons évidentes.
Et comment pourrais-je suivre les changements dans le repo fedorahosted dans le github one?
origin
pointe vers l'emplacement distant canonique. Dans ce cas, l'emplacement du github serait vraisemblablement le canon.git remote add
. Vous pouvez ensuite pousser vers l'un d'eux en indiquant explicitement la télécommandegit push
. Par exemple,git push foobar master
pour pousser la branche actuellemaster
sur à distancefoobar
.Il y a une réponse supprimée sur cette question qui avait un lien utile: https://help.github.com/articles/duplicating-a-repository
L'essentiel est
Exemple de l'OP:
Sur votre machine locale
la source
error: failed to push some refs to 'https://github.com/username/testrep.git'
Pour pousser votre référentiel existant dans différents, vous devez:
Clonez d'abord le dépôt d'origine.
Poussez les sources clonées vers votre nouveau référentiel:
Vous pouvez changer
master:master
ensource:destination
succursale.Si vous voulez pousser un commit (branche) spécifique, alors faites:
Sur le référentiel d'origine, créez et extrayez une nouvelle branche:
Choisissez et réinitialisez au point de départ:
Vous pouvez également sélectionner le commit par
git cherry-pick
pour l'ajouter à HEAD existant.Poussez ensuite vers votre nouveau référentiel:
Si vous rebasez, utilisez
-f
pour pousser la force (non recommandé). Courezgit reflog
pour voir l'historique des changements.la source
git push ... old_branch_name:new_branch_name
vous permet de pousser une branche de fonctionnalité de l'ancien référentiel comme branche principale dans le nouveau référentiel. Utile!Voulez-vous vraiment pousser simplement votre référentiel local (avec ses branches locales, etc.) vers la nouvelle télécommande ou voulez-vous vraiment mettre en miroir l'ancienne télécommande (avec toutes ses branches, balises, etc.) sur la nouvelle télécommande? Si ce dernier est un excellent blog sur Comment refléter correctement un référentiel git .
Je vous encourage fortement à lire le blog pour des détails très importants, mais la version courte est la suivante:
Dans un nouveau répertoire, exécutez ces commandes:
la source
Essayez ceci Comment déplacer un référentiel Git complet
Créez un référentiel local dans le répertoire temp-dir en utilisant:
git clone temp-dir
Allez dans le répertoire temp-dir.
Pour voir une liste des différentes branches dans ORI, procédez comme suit:
Extraire toutes les branches que vous souhaitez copier d'ORI vers NEW à l'aide de:
Récupérez maintenant toutes les balises d'ORI en utilisant:
Avant de passer à l'étape suivante, assurez-vous de vérifier vos balises et branches locales à l'aide des commandes suivantes:
Désactivez maintenant le lien vers le référentiel ORI avec la commande suivante:
Liez maintenant votre référentiel local à votre NOUVEAU référentiel nouvellement créé à l'aide de la commande suivante:
Poussez maintenant toutes vos branches et balises avec ces commandes:
Vous avez maintenant une copie complète de votre référentiel ORI.
la source
J'ai trouvé une solution en utilisant set-url qui est concise et assez facile à comprendre :
cd
dans le référentiel existant sur votre machine locale (si vous ne l'avez pas encore cloné, faites-le d'abord)git remote set-url origin https://github.com/user/example.git
git push -u origin master
la source
Si vous avez un référentiel Git existant:
la source
Pointez simplement le nouveau dépôt en changeant l'URL du dépôt GIT avec cette commande:
Exemple:
git remote set-url origin [email protected]:Batman/batmanRepoName.git
Maintenant, pousser et tirer sont liés au nouveau REPO.
Poussez ensuite normalement comme ceci:
la source
J'ai eu le même problème.
Dans mon cas, puisque j'ai le référentiel d'origine sur ma machine locale, j'ai fait une copie dans un nouveau dossier sans aucun fichier caché (.git, .gitignore).
Enfin, j'ai ajouté le fichier .gitignore au nouveau dossier créé.
Ensuite, j'ai créé et ajouté le nouveau référentiel à partir du chemin local (dans mon cas en utilisant GitHub Desktop).
la source
Voici une manière manuelle de procéder
git remote set-url origin [new repo URL]
:git clone <old remote>
Ouvert
<repository>/.git/config
et changer la télécommande (l'option url)
Poussez le référentiel vers GitHub:
git push
Vous pouvez également utiliser les deux télécommandes / plusieurs .
la source