经过多次努力,我无法弄明白。我有两个本地分支master
和tests
。我有两个相应的远程分支,具有相同的仓库,origin/master
,origin/tests
。我有另一个远程分支public/master
。我在本地master
和远程origin/master
上推送了一些提交历史记录。现在,我想压缩origin/master
的所有提交并推入远程分支public/master
。我无法弄明白该怎么做。
我尝试在新的本地分支上执行rebase
,但它不起作用。
答案 0 :(得分:6)
重置为第一次提交,然后修改,最后强制推送。
git pull origin master
git checkout master
git reset --soft <my-first-commit>
git commit --amend -m "New commit message"
git push public master --force-with-lease
如果最后一个命令出现“陈旧信息”错误,则
git fetch public master
,或git push --force-with-lease public +master
而不是最后一个命令。 你可以找到你的第一个这样的提交:
git rev-list --max-parents=0 HEAD
答案 1 :(得分:1)
也可以通过检查一个孤儿分支(它将携带当前工作树进行第一次提交),然后你可以进入你想要的任何遥控器。