场景:我提交,推送到远程服务器,然后使用--amend提交其他内容。如果我再次尝试推送,我会收到错误,因为我改变了已被推送的历史记录。
假设我做关心修改后的更改,如何将修改后的提交转换为独立提交,以便历史记录如下:
commit 1 <- commit 2
(already pushed to server) <- (originally from amended commit)
我试图避免使用push -f
。
This is a very similar question但是有一个关键的区别:在那个问题中,他还没有将提交1推送到远程仓库。在我的问题中,我有。
答案 0 :(得分:7)
我假设您的遥控器名为origin
,您的分支称为master
。根据需要进行调整。
让我们说我不关心修改后的变化
然后您可以使用git reset --hard origin/master
。这会将您当前的分支设置为遥控器上的分支,并更新您的索引和工作树以匹配。
让我说我关心修改后的变化
然后您可以使用git reset --soft origin/master
。这会将您当前的分支设置为远程上的分支,但不会更新您的索引或工作树以匹配。然后,您可以使用git commit
创建包含已添加更改的新提交。