0

我有几个旧分支已合并到主分支。我想重新开始,即我想删除除master分支之外的所有以前的分支。

主分支将是新的基础分支,具有未来开发的最新更改。我怎样才能做到这一点。

在此更改之后,如果有人签出该项目,他们将获得一个具有所有功能的工作主分支。

任何有关命令示例的帮助将不胜感激。谢谢!

4

3 回答 3

3

git branch -d您可以使用or删除本地分支git branch -D(如果您要删除的分支尚未完全合并)。

要删除遥控器上的分支,您可以使用git push REMOTE --delete BRANCH(或者git push REMOTE :BRANCH如果您的 git 版本较旧,则使用语法)。确保在那里替换您的实际遥控器名称 - 默认遥控器称为origin,但您可能有多个遥控器等。

于 2013-02-03T17:40:31.260 回答
1

'git branch -d' 将删除分支。如果分支未合并并且您想强制删除它,而不是'-d'使用'-D'。

于 2013-02-03T17:42:36.190 回答
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>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,并且您的新“历史记录”应该看起来像您想要的那样。

于 2013-02-03T17:51:42.057 回答