作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
场景:我提交,推送到远程服务器,然后使用 --amend 提交其他内容。如果我再次尝试推送,我会得到一个错误,因为我更改了已经推送的历史记录。
假设我确实关心修改后的更改,我如何将修改后的提交变成独立的提交,这样历史看起来像这样:
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/
我是一名优秀的程序员,十分优秀!