gpt4 book ai didi

git - 如果我已经推送了原始提交,如何从提交中恢复 --amend?

转载 作者:太空狗 更新时间:2023-10-29 13:51:39 26 4
gpt4 key购买 nike

场景:我提交,推送到远程服务器,然后使用 --amend 提交其他内容。如果我再次尝试推送,我会得到一个错误,因为我更改了已经推送的历史记录。

  1. 假设我关心修改后的更改,我该如何撤消它以使我的历史看起来像远程历史(丢弃 --amend 更改)?
  2. 假设我确实关心修改后的更改,我如何将修改后的提交变成独立的提交,这样历史看起来像这样:

           commit 1            <-           commit 2
    (already pushed to server) <- (originally from amended commit)

我试图避免使用 push -f


This is a very similar question但有一个关键区别:在那个问题中,他还没有将提交 1 推送到远程仓库。在我的问题中,我有。

最佳答案

我假设您的 Remote 名为 origin,您的分支名为 master。根据需要进行调整。

Lets say I don't care about the amended changes

然后你可以使用git reset --hard origin/master。这会将您当前的分支准确设置为远程上的分支,并更新您的索引和工作树以匹配。

Lets say I do care about the amended changes

然后你可以使用git reset --soft origin/master。这会将您当前的分支准确设置为远程上的分支,但不会更新您的索引或工作树以匹配。然后,您可以使用 git commit 创建包含您添加的更改的新提交。

关于git - 如果我已经推送了原始提交,如何从提交中恢复 --amend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24791149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com