我有几个旧分支已合并到主分支。我想重新开始,即我想删除除master分支之外的所有以前的分支。
主分支将是新的基础分支,具有未来开发的最新更改。我怎样才能做到这一点。
在此更改之后,如果有人签出该项目,他们将获得一个具有所有功能的工作主分支。任何有关命令示例的帮助将不胜感激。谢谢!
git branch -d
您可以使用or删除本地分支git branch -D
(如果您要删除的分支尚未完全合并)。
要删除遥控器上的分支,您可以使用git push REMOTE --delete BRANCH
(或者git push REMOTE :BRANCH
如果您的 git 版本较旧,则使用语法)。确保在那里替换您的实际遥控器名称 - 默认遥控器称为origin
,但您可能有多个遥控器等。
'git branch -d' 将删除分支。如果分支未合并并且您想强制删除它,而不是'-d'使用'-D'。
如果您想保留原件,可能会比您需要的多一点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>
start 将您要保存的提交带到这个新分支。
当您从旧分支中获得所需git branch -D <branch_name>
的一切时,删除分支引用。如果您需要删除标签git tag -d <tag_name>
。
重新创建从原始分支中删除后要保留的任何新分支名称和标签。
一旦本地存储库看起来像您想要的那样,使用git push origin <local branch>:<remote_branch> --force
. 旧的远程分支可以用git push origin :<remote_branch> --force
.
此时,构成旧分支的提交将被取消引用,并且不应出现在 a 中git log --all --oneline --graph
,并且您的新“历史记录”应该看起来像您想要的那样。