让一个新分支成为git中的主分支,而不会弄乱现有的分支

让一个新分支成为git中的主分支,而不会弄乱现有的分支,git,version-control,Git,Version Control,我有一个新的行业,我想成为大师。它与master的差异太大,无法合并或重新设置基础(尽管我已经手动移植了该功能)。我意识到我可以轻松地做一个git-branch-D master;git结帐新主人;git checkout-b master,但我不想弄坏任何叉子 理想情况下,我希望引入一个commit,将当前主机转换为一种状态,在这种状态下,我可以应用来自新分支的更改,这样任何使用fork的人都可以git拉取原始主机和git内容,而不会发生意外 这是可能的吗?如果您只希望branchmaster

我有一个新的行业,我想成为大师。它与master的差异太大,无法合并或重新设置基础(尽管我已经手动移植了该功能)。我意识到我可以轻松地做一个
git-branch-D master;git结帐新主人;git checkout-b master
,但我不想弄坏任何叉子

理想情况下,我希望引入一个commit,将当前主机转换为一种状态,在这种状态下,我可以应用来自新分支的更改,这样任何使用fork的人都可以
git拉取原始主机
和git内容,而不会发生意外


这是可能的吗?

如果您只希望branch
master
引用一个新的提交,其内容与branch
branch
相同,
master^
master
之间的增量是“更改所有内容以匹配branch
branch
”,这很容易:

$ git checkout branch
$ git symbolic-ref HEAD refs/heads/master
$ git status    # you'll see what you're about to commit, here
$ git commit    # make that new commit
请注意,
master
的分支历史记录在此不会引用
branch

如果您想让提交看起来像一个合并,以
branch
的方式更改所有内容,那么这似乎可以解决问题,但我没有很好地测试它:

$ git checkout master
$ git merge --no-commit -s ours branch  # this sets up the merge
$ git rm -r .                           # this empties it out
$ git checkout branch -- .              # this adds everything from branch
$ git status   # again, just to see what you're about to commit
$ git commit   # and maybe edit the message to note that you took "branch"

现在,
master^
是master过去的样子,
master ^2
branch

的提示,如果您只是想让branch
master
引用一个新的提交,它的内容与branch
branch
相同,
master^
master
之间的增量为“更改所有内容以匹配branch
branch
”这非常简单:

$ git checkout branch
$ git symbolic-ref HEAD refs/heads/master
$ git status    # you'll see what you're about to commit, here
$ git commit    # make that new commit
请注意,
master
的分支历史记录在此不会引用
branch

如果您想让提交看起来像一个合并,以
branch
的方式更改所有内容,那么这似乎可以解决问题,但我没有很好地测试它:

$ git checkout master
$ git merge --no-commit -s ours branch  # this sets up the merge
$ git rm -r .                           # this empties it out
$ git checkout branch -- .              # this adds everything from branch
$ git status   # again, just to see what you're about to commit
$ git commit   # and maybe edit the message to note that you took "branch"
现在
master^
是master过去的样子,
master ^2
分支的尖端