web-dev-qa-db-fra.com

Comment puis-je choisir d'écraser le référentiel distant avec des commits locaux?

En raison d’événements indépendants de ma volonté, mon référentiel distant a été déplacé. Entre-temps, j’ai beaucoup travaillé sur la copie locale et je souhaite maintenant tout écraser sur le référentiel distant avec mes fichiers locaux.

Cependant, je ne semble pas pouvoir le faire. Le plus proche que je puisse obtenir est de tirer et de fusionner, mais ensuite, il veut me guider à travers un processus compliqué de fusion. Je ne veux pas fusionner. Je veux écraser. Je n'ai pas besoin d'une nouvelle branche. En gros, je veux juste un nouveau départ.

Le repo distant est en déroute.

35
ericgr

Vous pouvez supprimer la branche et la recréer, disons que la branche que vous souhaitez écraser est dev:

Supprimer la branche de votre hôte distant (github)

git Push Origin :dev  

Ensuite, poussez à nouveau votre dev: 

git Push Origin dev

J'utilise Github pour l'hébergement, pas familier avec unfuddle, mais je pense que cela fonctionnera aussi pour le désenchantement. :)


Comme @melee l’a mentionné, vous pouvez aussi utiliser 

git Push Origin dev -f

(pas sûr que le -f soit valide, mais --force est OK)

git Push Origin dev --force

forcer écraser la branche. Je me souviens de l'avoir fait avant. Merci @ Melee. :)

48
Kjuly

Comment faire cela pour la branche principale, sans extraire des données du référentiel distant:

  1. Créez un nouveau dossier, init git, ajoutez un dépôt distant - ne tirez pas et ne récupérez pas!

    mkdir clean_repo

    git init

    git remote add Origin <remote-repo>

  2. créer (et basculer vers) une branche locale vide, ajouter, valider et insérer un fichier de test dans celui-ci.

    git checkout test

    echo "test" > test

    git add .

    git commit -m "adding test"

    git Push Origin:test

  3. Sur github/bitbucket, changez la branche par défaut en nouvelle branche

  4. Sur local, basculer vers la branche principale, valider et pousser vers le référentiel/branche distant

    git checkout -b master

    git Push Origin --mirror

4
a20

Je ne suis pas un expert en écosystème github, mais pourquoi ne pouvez-vous pas simplement réinitialiser l'URL de votre référentiel distant? 

git remote set-url Origin /path/to/your/new/remote/repository/url

Vous devrez peut-être également configurer votre branche en amont en regardant dans ici .

pour plus d'informations sur git remote..., jetez un œil ici .

0
Simple-Solution