Git New Master Branch

时间:2013-02-03 17:26:31

标签: git rebase

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

主分支将成为新的基础分支,具有未来发展的最新变化。 我怎样才能做到这一点。

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

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

3 个答案:

答案 0 :(得分:3)

您可以使用git branch -dgit 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中,并且您的新“历史记录”应该按照您的要求显示。