2016-05-04 12 views
18

Ho creato un'unione (nel ramo "master") che ora è in un repository Bitbucket. Per farla breve: ho bisogno di annullare quell'unione.Come annullare un'unione su Bitbucket?

So che è possibile farlo nel sito Github stesso, ma Bitbucket non ha questa funzionalità. Non sono chiaro su come farlo con Git senza causare problemi.

risposta

37

È necessario clonare prima il repository sul sistema locale (è possibile ottenere l'URL repo in SSH o HTTPS formato dalla pagina "Panoramica" del repository in Bitbucket):

git clone [email protected]:my/repo.git 
-or- 
git clone https://[email protected]/my/repo.git 

git checkout master 

.. poi ripristina il commit più recente. Primo elenco la disposizione si impegna con:

git log 

.. poi selezionare il commit prima della fusione:

git reset --hard 72ead1c4c1778c23c277c4f15bbb68f3bb205f54 

.. dove l'hash è l'hash del commit prima della fusione (dal log) . Infine, forza-spinga le modifiche a Bitbucket, sovrascrivendo la cronologia.

git push -f 

Naturalmente se il repo è condivisa, e gli altri utenti hanno tirato tuo ultimo commit e costruito in cima ad esso, non saranno felici. Quindi in tal caso assicurati di avvisare tutti di quello che stai facendo.

revert, come indicato nelle altre risposte è un'altra opzione; mantiene il commit effettuato, ma modifica ulteriormente il repository (con un nuovo commit) in modo tale da annullare le modifiche apportate. Se si desidera utilizzare revert dipende dal fatto che si desidera che le informazioni nel commit rimangano nella cronologia del repository o meno.

Per ulteriori dettagli sull'annullamento delle modifiche in git, vedere a good tutorial page by Atlassian.

+0

Perfetto, grazie. – James

+0

Grazie, questa soluzione mi ha salvato anche la giornata –

+0

Hai appena salvato la mia giornata, grazie! – matisa

1

per annullare le modifiche di un commit: git revert <commit id>

4

Vorrei suggerire facendo un revert, invece, dal momento che si sta tornando un pronti contro termine pubblica.

git revert HEAD 
git push -f origin 
2

Una caratteristica "Ripristina richiesta di pull" è stata attuata in Bitbucket nel 2017.

Per ripristinare una richiesta di pull:

  1. Dalla richiesta di pull, fare clic sul pulsante Ripristina in alto a destra . (facoltativo) Dalla finestra di dialogo di richiesta di richiamo di Revert, modificare il nome del ramo per il nuovo ramo che si sta per creare.
  2. Fare clic sul pulsante Ripristina. Dopo aver fatto clic su Ripristina, Bitbucket crea il nuovo ramo. Anche se si annulla la richiesta di pull, il ramo di ripristino rimane nel repository.
  3. Viene visualizzata la pagina Crea una richiesta di estrazione con il ramo di ripristino come origine. Dopo aver aggiunto i revisori e apportato ulteriori modifiche, fai clic su Crea.

Fonte: the docs.