1

我有一个新的工作,我想成为大师。它与 master 的分歧太大而无法合并或变基(尽管我已经手动移植了该功能)。我意识到我可以轻松地做 a git branch -D master; git checkout new-master; git checkout -b master,但我不想搞砸任何叉子。

理想情况下,我想引入一个提交,将当前的 master 转变为我可以从我的新分支应用我的更改的状态,这样任何有 fork 的人都可以git pull origin master毫无意外地进行 git 操作。

这可能吗?

4

1 回答 1

1

如果您只想 branchmaster引用其内容与 branch 相同的新提交,并且branch之间的增量是“更改所有内容以匹配分支的内容”,那很容易:master^masterbranch

$ 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^2是尖端的branch

于 2012-05-08T06:32:24.400 回答