2012-09-26 46 views
34

我是使用git的新手,我使用它來貢獻AOKP Android ROM。我已經成功創建了幾個分支,修改了代碼,並上傳了在遠程端合併的提交。但在我的本地存儲庫中,這些分支仍然顯示出來(即使它們顯示爲沒有更改)。問題是,當我創建這些分支時,我從需要修改的子文件夾中這樣做,所以我沒有任何「更高級」的分支可供使用。因此,我不能刪除這些分支 - 混帳拖我error: Cannot delete the branch 'MyMods' which you are currently on.如何刪除(或合併)我目前使用的本地Git分支?

那麼我能做些什麼來擺脫這些分支?

+0

Git不會允許這一點,因爲它比這些民間有點聰明:https://開頭WWW。 youtube.com/watch?v=zE8el_qscvE – Krumia

回答

50

結帳不同的分支首先,刪除前:

git checkout master 
git branch -d MyMods 

此外,分支機構都無關的文件夾。 Git總是一次跟蹤整個存儲庫及其所有文件夾和文件。分支只不過是指向存儲庫歷史記錄中單個提交或快照的指針。

+0

我瞭解git與物理文件夾之間的差異。我每次運行「回購同步」時都會看到一條警告,說我的分支是背後的一些提交,因爲我已經完成了它,所以我想擺脫它。但是,如果我簽出一個主分支,我不會遇到同樣的問題,因爲那麼主分支就會掛在那裏沒有提交? – user496854

+0

我喜歡這個不起眼的教程:http://rootzwiki.com/topic/22424-aokp-gerrit-tutorial,它只是讓我在應用程序中創建一個分支,我正在修改它。那麼,你的意思是我必須查看整個AOKP樹,以及這將如何影響我正常的回購同步? – user496854

+0

'git checkout master'(或任何其他分支)沒有給出任何響應,該命令似乎需要永遠。我認爲一個分支不知何故被打破,所以我想刪除它。 –

3

是剛剛簽出另一個分支(也許主),然後:

git的結帳主 的Git分支-d thebran

0

但在我的本地庫,這些分支仍然顯示(甚至 儘管他們顯示沒有變化)。

分支將顯示在您的本地回購,除非您刪除它們。當你推動它們時,它們不會消失。

上面的答案告訴你如何刪除一個分支。但是,我會補充說使用-D選項會更強大一些。無論其(UN)合併狀態,此選項刪除分支:

git branch -D branchName 

這支路刪除的原子彈。小心使用。

+0

原來的帖子明確指出,它不會讓我刪除分支,因爲我目前在這個分支上,並且沒有更高的分支可以移動到。那麼你的答案如何幫助? – user496854

+0

您需要先切換分支 - 忘記添加分支。我的評論也指出了另一個答案,即只能刪除你不在的分支。 – gitlinggun

+0

「高級分支」是什麼意思?這在git世界中沒有任何意義。 – gitlinggun

1

如果您不能刪除該分支是worktree,那麼你可能需要先刪除worktree:

rm -r MyMods 
git worktree list # shows MyMods 
git worktree prune 
git worktree list # doesn't show MyMods 
git branch -d MyMods 
相關問題