94 votes

Cloner un dépôt depuis le Github de quelqu'un d'autre et le pousser vers un dépôt sur mon Github

J'ai cloné le dépôt à https://github.com/railstutorial/sample_app_rails_4 et j'ai apporté de nombreux changements (je l'ai utilisé comme point de départ pour mon application), et maintenant je voudrais pousser l'application modifiée vers un dépôt sur mon propre compte github.

Comment puis-je changer le dépôt github auquel il est lié ?

148voto

mgarciaisaia Points 3287

Comme le dit Deefour, votre situation n'est pas très différente de celle dans Changer l'URI (URL) d'un dépôt Git distant. Lorsque vous clone un dépôt, il est ajouté comme un remote du vôtre, sous le nom origin. Ce que vous devez faire maintenant (puisque vous n'utilisez plus l'ancienne source) est de changer l'URL de origin:

$ git remote set-url origin http://github.com/VOUS/VOTRE_REPO

Si le dépôt original est souvent mis à jour et que vous souhaitez obtenir ces mises à jour de temps en temps, plutôt que de modifier origin, il serait préférable d'ajouter un nouveau remote:

$ git remote add personal http://github.com/VOUS/VOTRE_REPO

Ou peut-être même renommer l'ancien en upstream:

$ git remote rename origin upstream
$ git remote add origin http://github.com/VOUS/VOTRE_REPO

Ensuite, chaque fois que vous voulez obtenir des modifications de upstream, vous pouvez le faire :

$ git fetch upstream

Comme il s'agit d'un dépôt d'exemple (semblant être une sorte de modèle pour commencer), je ne pense pas qu'il soit nécessaire de le conserver ni de le bifurquer du tout - je vais opter pour la première alternative ici.

90voto

Derek Soike Points 3634

GitHub: git clone le dépôt de quelqu'un d'autre & git push vers votre propre dépôt

Je vais me référer au dépôt de quelqu'un d'autre comme le dépôt de l'autre.


  1. Créez un nouveau dépôt sur github.com. (c'est votre dépôt)
  • Donnez-lui le même nom que le dépôt de l'autre.
  • Ne l'initialisez pas avec un README, .gitignore, ou une license.
  1. Clonez le dépôt de l'autre sur votre machine locale. (si ce n'est pas déjà fait)
  • git clone https://github.com/autre-compte/dépôt-de-l-autre.git
  1. Renommez l'actuel 'origin' du dépôt local en 'upstream'.
  • git remote rename origin upstream
  1. Donnez au dépôt local un 'origin' qui pointe vers votre dépôt.
  • git remote add origin https://github.com/votre-compte/votre-dépôt.git
  1. Poussez le dépôt local vers votre dépôt sur github.
  • git push origin main

Maintenant 'origin' pointe vers votre dépôt & 'upstream' pointe vers le dépôt de l'autre.

  • Créez une nouvelle branche pour vos changements avec git checkout -b ma-branche-de-fonctionnalité.
  • Vous pouvez git commit comme d'habitude vers votre dépôt.
  • Utilisez git pull upstream main pour récupérer les changements du dépôt de l'autre vers votre branche principale.

15voto

MAOXU Points 179

Supprimer git et réinitialiser.

Votre objectif est probablement de mettre ce dépôt sur le vôtre et de le rendre vôtre.

L'idée est de supprimer le .git/ et de le réinitialiser.

  1. Allez dans le dossier de votre dépôt cloné

    rm -rf .git

  2. Réinitialiser et ensuite ajouter votre remote et faire votre premier push.

    git init git add . git commit -m "votre message de commit" git remote add origin git push origine principal

8voto

bmorgan21 Points 119

Vous pouvez le faire en créant un nouveau remote à partir de votre dépôt local (via la ligne de commande).

git remote add  

ensuite, vous pouvez appeler:

git push  

Pour remplacer le remote par défaut "origin" qui est configuré, vous pouvez exécuter les commandes suivantes:

git remote rm origin
git remote add origin

7voto

llekn Points 526

Je pense que le "moyen le plus poli" de le faire serait :

  1. Faites un fork du dépôt d'origine sur votre compte GitHub
  2. Créez une nouvelle branche pour vos modifications git checkout -b (au cas où vous ne l'auriez pas fait avant)
  3. Ajoutez un nouveau remote pour votre dépôt local : git remote add github
  4. Poussez votre nouvelle branche sur votre dépôt GitHub : git push github

De cette manière, vous aurez un dépôt forké à partir de l'original, avec vos modifications validées dans une branche séparée. Cela sera plus facile si vous souhaitez soumettre une pull request au dépôt d'origine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X