不确定如何使用git rebase,是否仅在本地使用?

时间:2018-07-18 17:39:02

标签: git git-rebase git-revert

我是git的新手,我正尝试还原约20条已由其他人提交到master分支的提交。 我以为我可以使用get rebase和pick并选择要还原的提交,要编辑的提交以及要离开的提交。不是吗?只能在我的本地仓库中进行基准变迁吗? 有没有办法用一个脚本返回20次提交?还是每次都要使用git revert来完成? 预先感谢

2 个答案:

答案 0 :(得分:0)

否,如果您在本地更改了回购的历史记录,然后想正常推送,则将无法使用。您必须强行推动它。然后,您会遇到下一个问题:如果其他人的历史记录与远程回购记录的历史记录不同,则他将无法再进行操作。这意味着他将不得不删除自己的仓库并再次克隆。

答案 1 :(得分:0)

您可以重新构建功能分支,但您认为合适。 git rebase -i HEAD~20。将弹出一个编辑器,您d将要删除并保存的那些提交放到其中。最后,使更改影响遥控器:git push --force

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