git-branch how to - Come posso eliminare un ramo Git sia localmente che remotamente?





15 Answers

La risposta di Matthew è ottima per rimuovere i rami remoti e apprezzo anche la spiegazione, ma per fare una semplice distinzione tra i due comandi:

Per rimuovere un ramo locale dalla tua macchina:

git branch -d {the_local_branch} (usa invece -D per forzare l'eliminazione del ramo senza controllare lo stato unito)

Per rimuovere un ramo remoto dal server:

git push origin --delete {the_remote_branch}

Riferimento: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

push pull comando

Voglio eliminare un ramo sia localmente che sul mio fork del progetto remoto su GitHub .

Tentativi non riusciti per eliminare il ramo remoto

$ git branch -d remotes/origin/bugfix
error: branch 'remotes/origin/bugfix' not found.

$ git branch -d origin/bugfix
error: branch 'origin/bugfix' not found.

$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).

$ git push
Everything up-to-date

$ git pull
From github.com:gituser/gitproject
* [new branch] bugfix -> origin/bugfix
Already up-to-date.

Cosa devo fare in modo diverso per cancellare correttamente il ramo remotes/origin/bugfix sia localmente che su GitHub?




Passi per l'eliminazione di un ramo:

per eliminare il ramo remoto:

git push origin --delete <your_branch> 

per eliminare il ramo locale , hai tre modi:

1: git branch -D <branch_name> 

2: git branch --delete --force <branch_name>  //same as -D

3: git branch --delete  <branch_name>         //error on unmerge

Spiega: OK, spiega solo cosa sta succedendo qui!

Basta fare git push origin --delete per eliminare SOLO il tuo ramo remoto , aggiungi il nome del ramo alla fine e questo lo cancellerà e lo spingerà al remoto allo stesso tempo ...

Inoltre, git branch -D , che semplicemente elimina il ramo locale SOLO ! ...

-D sta per --delete --force che cancellerà il ramo anche se non è unito (force delete), ma puoi anche usare -d che sta per --delete che lancia un errore rispettivo dello stato di fusione dei branch ...

Creo anche l'immagine qui sotto per mostrare i passaggi:




Se si desidera eliminare un ramo, prima effettuare il checkout al ramo diverso dal ramo da eliminare.

git checkout other_than_branch_to_be_deleted

Eliminazione della filiale locale:

git branch -D branch_to_be_deleted

Eliminazione del ramo remoto:

git push origin --delete branch_to_be_deleted



git branch -D <name-of-branch>
git branch -D -r origin/<name-of-branch>
git push origin :<name-of-branch>



Un altro approccio è

git push --prune origin

ATTENZIONE: questo eliminerà tutti i rami remoti che non esistono localmente. O più esaurientemente,

git push --mirror

renderà efficacemente il repository remoto simile alla copia locale del repository (le testine locali, i telecomandi e i tag sono speculari su remoto).




A partire da gennaio 2013, GitHub ha incluso un pulsante Elimina ramo accanto a ciascun ramo nella pagina "Rami".

Post del blog pertinente: crea ed elimina i rami




Per eliminare il tuo ramo localmente e da remoto

  • Fai il checkout al master branch - git checkout master

  • Elimina il tuo ramo remoto - git push origin --delete <branch-name>

  • Elimina il tuo ramo locale - git branch --delete <branch-name>




Puoi farlo anche usando git remote prune origin :

$ git remote prune origin
Pruning origin
URL: git@example.com/yourrepo.git
 * [pruned] origin/some-branchs

Elimina ed elimina i rami di tracciamento remoto da un git branch -r elenco.




Eliminazione di rami

Supponiamo che il nostro lavoro sul ramo "contact-form" sia fatto e lo abbiamo già integrato in "master". Dal momento che non ne abbiamo più bisogno, possiamo eliminarlo (localmente):

$ git branch -d contact-form

E per eliminare il ramo remoto:

git push origin --delete contact-form



Elimina il ramo remoto

git push origin :<branchname>

Elimina il ramo locale

git branch -D <branchname>

Elimina passaggi filiale locale:

  1. checkout ad un altro ramo
  2. elimina il ramo locale



Ora puoi farlo con l'app GitHub Desktop .

Dopo aver lanciato l'app

  1. Clicca sul progetto che contiene il ramo
  2. Passare al ramo che si desidera eliminare
  3. Dal menu "Ramo", seleziona "Annulla pubblicazione ..." per fare in modo che il ramo venga eliminato dai server GitHub.
  4. Dal menu "Branch", seleziona, "Elimina" branch_name "...", per fare in modo che il ramo venga cancellato dalla tua macchina locale (ovvero la macchina su cui stai lavorando)



git push origin --delete branchName

è più facile da ricordare che

git push origin :branchName



Mi sono stancato di googling per questa risposta, quindi ho adottato un approccio simile alla risposta che crizCraig ha pubblicato in precedenza.

Aggiunto il seguente al mio profilo Bash:

function gitdelete(){
    git push origin --delete $1
    git branch -D $1
}

Quindi ogni volta che ho finito con un ramo (fuso in master , ad esempio), eseguo quanto segue nel mio terminale:

gitdelete my-branch-name

... che poi cancella il my-branch-name origin come pure localmente.




git push origin :bugfix  # Deletes remote branch
git branch -d bugfix     # Must delete local branch manually

Se sei sicuro di volerlo cancellare, corri

git branch -D bugfix

Ora per ripulire i rami remoti eliminati corrono

git remote prune origin



Mashup di tutte le altre risposte. Richiede Ruby 1.9.3+, testato solo su OS X.

Chiama questo file git-remove , rendilo eseguibile e mettilo nel tuo percorso. Quindi utilizzare, ad esempio, git remove temp .

#!/usr/bin/env ruby
require 'io/console'

if __FILE__ == $0
      branch_name = ARGV[0] if (ARGV[0])
      print "Press Y to force delete local and remote branch #{branch_name}..."
    response = STDIN.getch
    if ['Y', 'y', 'yes'].include?(response)
      puts "\nContinuing."
      `git branch -D #{branch_name}`
      `git branch -D -r origin/#{branch_name}`
      `git push origin --delete #{branch_name}` 
    else
      puts "\nQuitting."
    end
end



Related