不知道如何使用 git rebase,它只在本地使用吗?

not sure how to use git rebase, is it only used locally?

我是 git 的新手,我正在尝试恢复大约 20 次已经由其他人提交到 master 分支的提交。 我想我可以使用 got rebase 和 pick and choose 哪些提交要还原,哪些要编辑,哪些要离开。不是这样吗?变基只能在我的本地仓库中完成吗? 有没有办法用一个脚本返回 20 次提交?还是每次都必须用 git revert 来完成? 提前致谢

不行,如果你在本地改了repo的历史,然后想正常推送,这个是行不通的。你必须强行推动它。然后你有下一个问题:如果其他人的历史与远程仓库的历史不同,他就不能再拉。这意味着他将不得不删除他的存储库并再次克隆它。

您可以按照您认为合适的方式修改您的功能分支。 git rebase -i HEAD~20。会弹出一个编辑器,您可以在其中 drop 那些要删除并保存的提交。最后使更改影响遥控器:git push --force.

事实上,只有当您确定没有其他人在使用该远程分支时,您才应该这样做,因为您刚刚从中删除了提交,这会使它与其他人在同一分支上的工作不兼容。如果没有,您可以使用 git revert,它会添加一个撤消先前提交的更改的提交。