我有几个旧分支已合并到主分支。我想重新开始,即我想删除除主分支之外的所有先前分支。
主分支将成为新的基础分支,具有未来发展的最新变化。 我怎样才能做到这一点。
在此更改之后,如果有人签出项目,他们将获得具有所有功能的工作主分支。
任何有关命令示例的帮助都将不胜感激。谢谢!
答案 0 :(得分:3)
您可以使用git branch -d
或git branch -D
删除本地分支(如果您要删除的分支尚未完全合并)。
要删除遥控器上的brances,您可以使用git push REMOTE --delete BRANCH
(如果您的git版本较旧,则使用git push REMOTE :BRANCH
语法)。确保在那里替换您的实际遥控器名称 - 默认遥控器名为origin
,但您可能有多个遥控器等。
答案 1 :(得分:1)
'git branch -d'将删除分支。如果分支未合并且您想强行删除它,而不是'-d'使用'-D'。
答案 2 :(得分:0)
如果你想保留原来的master
,可能会比你需要的多一点,但是如果你真的刚刚开始,可以使用
git checkout --orphan new_master
git rm -r --cached .
git clean .
git commit --allow-empty -m 'initial commit'
git tag -a init -m 'repository start'
git clean .
可能需要运行两次;清除.gitignore
文件会揭示已被忽略的文件。
这样做是创建一个新的基本分支,其中包含一个空提交以重新开始并标记第一个提交以便于参考。
然后使用git rebase -I --onto init --root <whatever you want to move over>
开始将要保存的提交带到此新分支。
当您从旧分支机构获得所需内容时,git branch -D <branch_name>
将删除分支引用。如果您需要删除标记git tag -d <tag_name>
。
重新创建从原始文件中删除后要保留的新分支名称和标记。
一旦本地存储库按您希望的方式显示,请使用git push origin <local branch>:<remote_branch> --force
将其推送到源。可以使用git push origin :<remote_branch> --force
删除旧的远程分支。
此时构成旧分支的提交将被取消引用,不应显示在git log --all --oneline --graph
中,并且您的新“历史记录”应该按照您的要求显示。