经过多次尝试,我一直无法弄清楚。我有两个本地分支,master
和 tests
。我有两个具有相同 repo 的相应远程分支,origin/master
、origin/tests
。我有另一个远程分支 public/master
。我在本地 master
和远程 origin/master
上都推送了一些提交历史记录。现在,我想压缩 origin/master
的所有提交并推送到远程分支 public/master
。我不知道该怎么做。
我已经尝试在一个新的本地分支上执行 rebase
但它没有用。
最佳答案
重置为你的第一次提交,然后修改,最后强制推送。
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
关于git - 我如何压缩所有提交历史并推送到另一个远程存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44663822/