web-dev-qa-db-fra.com

Cloner un repo du Github de quelqu'un d'autre et le pousser vers un repo sur mon Github

J'ai cloné le repo à l'adresse https://github.com/railstutorial/sample_app_Rails_4 et y ai apporté beaucoup de modifications (je l'ai utilisé comme point de départ pour ma propre application) et j'aimerais maintenant Pousser l'application modifiée vers un dépôt sur mon propre compte github.

Comment puis-je changer à quel github repo il est lié?

60
jackerman09

Comme le dit Deefour, votre situation n’est pas très différente de celle de modifier l’URI (URL) d’un référentiel Git distant . Lorsque vous clone un référentiel, il est ajouté en tant que remote à vous, sous le nom Origin. Ce que vous devez faire maintenant (car vous n'utilisez plus l'ancienne source), c'est changer l'URL de Origin:

$ git remote set-url Origin http://github.com/YOU/YOUR_REPO

Si le référentiel d'origine se met à jour souvent et que vous souhaitez obtenir ces mises à jour de temps à autre, au lieu de modifier Origin, il serait préférable d'ajouter un nouveau remote:

$ git remote add personal http://github.com/YOU/YOUR_REPO

Ou peut-être même appelez-vous l'ancien upstream:

$ git remote rename Origin upstream
$ git remote add Origin http://github.com/YOU/YOUR_REPO

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

$ git fetch upstream

Comme cette source est un exemple de référentiel (semble être une sorte de modèle pour commencer), je ne pense pas qu'il soit nécessaire de la conserver ni de la fourrer du tout - je vais utiliser la première alternative ici.

94
mgarciaisaia

GitHub: git clone le dépôt de quelqu'un d'autre & git Push vers votre propre référentiel

Je vais faire référence au quelqu'un d'autre référentiel en tant que autre référentiel.


  1. Créez un nouveau référentiel à github.com . ( votre référentiel)

    • Donnez-lui le même nom que le autre référentiel.
    • Ne l'initialisez pas avec un fichier README, .gitignore ou une licence.
  2. Clonez le autre référentiel sur votre machine locale. (si vous ne l'avez pas déjà fait)

    • git clone https://github.com/other-account/other-repository.git
  3. Renommez le ' Origine' actuel du référentiel local en ' en amont'.

    • git remote rename Origin upstream
  4. Donnez au référentiel local un ' Origine' qui pointe vers votre référentiel.

    • git remote add Origin https://github.com/your-account/your-repository.git
  5. Poussez le référentiel local vers votre référentiel sur github.

    • git Push Origin master

Maintenant ' Origine' pointe vers votre référentiel & ' en amont' pointe vers le autre référentiel.

  • Créez une nouvelle branche pour vos modifications avec git checkout -b my-feature-branch.
  • Vous pouvez git commit comme d'habitude votre référentiel.
  • Utilisation git pull upstream master pour extraire les modifications de autre référentiel vers votre branche principale.
36
Derek Soike

Supprimer git et re-init.

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

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

  1. allez dans votre dossier de repo cloné rm -rf .git
  2. réinitialisez-le, ajoutez votre télécommande et effectuez votre premier Push.
    
    git init
    git add .
    git commit -m "your commit message"
    git remote add Origin 
    git Push Origin master
    
8
MAOXU

Vous pouvez le faire en créant une nouvelle télécommande à partir de votre référentiel local (via la ligne de commande).

git remote add <name> <url>

alors vous pouvez appeler:

git Push <name> <repo_name>

Pour remplacer la télécommande "Origin" par défaut qui est configurée, vous pouvez exécuter ce qui suit:

git remote rm Origin
git remote add Origin <url>
8
bmorgan21

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

  1. Créez le dépôt d'origine sur votre compte GitHub
  2. Commander une nouvelle branche pour vos modifications git checkout -b <your_branch_name> _ (au cas où vous ne l'auriez pas fait auparavant)
  3. Ajoutez une nouvelle télécommande pour votre référentiel local: git remote add github <your_repository_ssh_url>
  4. Poussez votre belle nouvelle branche dans votre dépôt github: git Push github <your_branch_name>

De cette façon, un référentiel sera ajouté à celui d'origine, vos modifications étant validées dans une branche distincte. Cette méthode sera plus facile si vous souhaitez soumettre une demande d'extraction au référentiel d'origine.

7
llekn

Tiré de Git Poussez tout vers la nouvelle origine

fondamentalement, vous devez associer une nouvelle prise en pension à votre dossier

git remote add Origin <address>
git Push Origin <branchname>
1
Eric C

J'ai eu une situation similaire, mais dans mon cas ce que je devais faire était, comme suggéré, mais avec https, comme ceci:

$ git remote set-url Origin https://github.com/YOU/YOUR_REPO

0
user3685927