2013-10-08 28 views
5

Ho fatto questo comandi git:Bitbucket git azzerato

git reset --hard hash 
git push -f 

Tutto era buono a livello locale, non vedo alcun commit dopo 'hash' commit. Tutto andava bene anche dopo aver spinto, non c'erano errori, ma sul pannello principale di Bitbucket del mio repository (Overview) gli ultimi commit lo sono ancora. E io non lo capisco, ho resettare repository remoto o no?

risposta

4

Il problema è che gli SHA non sono stati modificati, quindi Git non aggiorna il telecomando su BitBucket. La cronologia dopo la data in cui resisti esiste ancora, potresti fare git pull e il tuo repository locale otterrà tutti i successivi commit.

Dopo aver eseguito il git reset --hard HASH, fare un git reset HEAD~ (nota: questo è un soft reset) Quindi riprendere le modifiche. Questo genererà un nuovo SHA per il commit e quando imposti il ​​push delle modifiche, l'albero su BitBucket dovrebbe essere aggiornato come previsto.

ATTENZIONE Questo sta cambiando la storia e se ci sono altri che hanno tirato dalla repo, causerà problemi. Questo non dovrebbe essere un normale flusso di lavoro per annullare le modifiche su un ramo remoto, è necessario utilizzare git revert.

0

git reset non cancella i commit; se questo è il tuo intento. Reimposta l'albero di lavoro corrente (modifiche temporanee da eseguire) sul computer locale.

+0

non ci sono modi per cancellare i commit o cancellare la cronologia di bitbucket? – malcoauri

+0

o resetta albero remoto per nascondere i commit – malcoauri

+0

'git revert' può annullare un commit specificato (non unire commit, comunque). Al di fuori di questo; la tua migliore scommessa sarebbe ricominciare da capo. – jackyalcine

Problemi correlati