![](/img/trans.png)
[英]Git : How to delete all local branches (merged or not), except master and develop
[英]git - how to delete local master if you have no other branches
編輯:目的是將我的本地主機副本完全重置為遠程主機。 我更喜歡重置為遠程,超過$ git reset --hard HEAD
,我發現它有時會給我帶來問題。
我知道我可以像這樣刪除本地 git 分支:
$ git branch -D master
但是,如果您沒有其他分支機構,有沒有辦法做到這一點? 因為 git 不會讓您刪除當前所在的分支。
通常我只是切換到另一個分支,但是如果您沒有其他分支怎么辦? 創建一個臨時分支?
注意:我相信這不是另一個問題的完全重復
這可能不是您想要的,但如果問題是“我如何刪除我唯一的 git 分支”,那么我認為這個答案可能滿足這些要求:
mkdir deleteme
cd deleteme
git init
Initialized empty Git repository in deleteme/.git/
git:(master) echo foo > bar.txt
git:(master) ✗ git add -A
git:(master) ✗ git commit -m 'initial commit'
[master (root-commit) 2dc7ccd] initial commit
1 file changed, 1 insertion(+)
create mode 100644 bar.txt
git:(master) git checkout 2dc7ccd
HEAD is now at 2dc7ccd initial commit
git:(2dc7ccd) git branch -D master
Deleted branch master (was 2dc7ccd).
git:(2dc7ccd) git branch -l
* (HEAD detached at 11c60ce)
你總是需要檢查一些東西(除非你為了共享目的而制作了一個你不會工作的裸倉庫)。 在你的情況下,如果master
是唯一剩下的分支,那是你當前的分支,你不能刪除它(還)。 如果您真的想要,您可以創建或簽出另一個分支,甚至可以分離到提交而不是分支名稱,然后刪除master
。 或者,
我更喜歡重置為遠程...
這正是我會做的:
git fetch
git reset --hard @{u}
與master
簽出並跟蹤origin/master
將是相同的命令:
git reset --hard origin/master
如果您願意,您也可以從那里清除未跟蹤的文件。
或者,由於您只有一個分支並且您不喜歡上面的內容,因此這是刪除您的存儲庫並重新克隆的不錯選擇。 對於我要做的足夠小的存儲庫,否則,我只需將分支重置到遠程。
如果您只想從分支中刪除所有內容,那么您可以在本地存儲庫中執行類似的操作
$ git checkout master
$ git rm -r folder-name or rm <file1> <file2> <file3>…
$ git commit -m "Remove files"
$ git push origin master
另一種選擇是刪除您的.git
文件夾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.