![](/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.