2013-07-09 10 views
11

Wiem, że zostało to już wcześniej uwzględnione, ale próbowałem poniższych i nie mogę usunąć zdalnej gałęzi.Jak usunąć zdalny oddział przy użyciu Git?

[email protected]:~/workspace/3DOD_VARIANCE$ git branch -a 
* master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 
    remotes/origin/multi_gauss_at_nodes 
    remotes/origin/old-state-with-mean-deviation-from-centre 
    remotes/origin/variance-branch 


[email protected]:~/workspace/3DOD_VARIANCE$ git branch -r -d origin/old-state-with-mean-deviation-from-centre Deleted remote branch origin/old-state-with-mean-deviation-from-centre (was 0ed90b2). 


Fetching origin 
From https://bitbucket.org/alykhantejani/3dobjectdetection 
* [new branch]  old-state-with-mean-deviation-from-centre -> origin/old-state-with-mean-deviation-from-centre 

Jak widać, gałąź została pobrana ponownie. Masz pojęcie, co robię źle?

Ponadto, jak marginesie, czy jest jakiś sposób dla mnie, aby sprawdzić, czy ta gałąź jest już połączone z powrotem do pana przed usunąć?

+1

możliwe duplikat [Jak mogę usunąć Oddział Git zarówno lokalnie, jak i GitHub?] (Http://stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-both-locally-and-in-gitub) – Livius

+0

@Livius Hi , tak, odniosłem się do tego pytania po raz pierwszy, ale bez powodzenia – Aly

+0

"Brak szczęścia" nie jest przydatnym raportem o błędzie. Również dlaczego twoje pytanie nie mówi, że wypróbowałeś podane tam rozwiązanie? – Chronial

Odpowiedz

17

Komenda pełny Push jest następujący

git push <remote name> <local branch>:<remote branch> 

Po prostu wyślij "n o oddział w ogóle”do zdalnego serwera w ten sposób:

git push origin :old-state-with-mean-deviation-from-centre 

Na marginesie: git uniemożliwia usunięcie gałęzi, która nie została połączona kiedy używać«git branch -d»(i mówi do korzystania - D, jeśli jesteś naprawdę pewien, aby go usunąć mimo to).

zauważysz git branch -d -r <branch name> usunięcie odniesienia w swojej .git folderu (a nie prawdziwy oddział znajduje się na zdalnym serwerze) Również, dlatego nowa sprowadzić ponownie utworzyć to

+0

Dzięki, to rozwiązało problem. Proszę podkreślić, że pochodzenie/kwalifikacja nie jest potrzebna w nazwie oddziału zdalnego, ponieważ spowodowało to niepowodzenie. – Aly

+1

Wszystko, co można zrobić za pomocą polecenia "branch", dotyczy lokalnego repozytorium, tj. Folderu .git. 'git branch -d -r origin/master' dotyczy pliku .git/refs/remote/origin/master (który zawiera sha1) zostanie usunięty, ale nie ten na serwerze (ponieważ żadna gałąź nie ma nazwy" origin/master ") master ", który oznacza część nazwy oddziału). jeśli wpiszesz 'git push: origin/old-branch' spróbuje usunąć gałąź" origin/old-branch "(podejmującą pochodzenie jako przestrzeń nazw), która nie istnieje. – Asenar

18

Aby usunąć zdalną uruchomić oddział następujący:

git push origin :branch-to-delete 

Sztuką jest w okrężnicy

+0

pomysł, jak sprawdzić, czy ten oddział został scalony z wzorcem, zanim go usunę? – Aly

+0

git branch - zawiera gałąź. Otrzymasz listę gałęzi, które zawierają tę gałąź, jeśli gałąź ur znajduje się na liście, możesz ją usunąć. – grafa

+0

Tried powyższego polecenia i uzyskać następujące: nie można wcisnąć do bezwarunkowego przeznaczenia: pochodzenie/old-state-z-średnią odchylenie-z centrum Docelowy refspec nie pasuje do istniejącego ref na pilocie ani zaczyna odn/ – Aly

2

spróbować

git push origin :remote_branch_to_be_deleted