0

如果我在我的本地 repo 上提交了更改,那么 git push'ed 更改。我知道您可以修改和删除对本地存储库的提交,但是我输入哪些命令来为我的远程存储库执行类似的操作:

1)从远程仓库中删除我的最后一次推送。2)修改我最后一次推送到远程仓库。

4

3 回答 3

1

您必须强制推送您的新参考:

vim yourfile
git add yourfile
git commit --amend --no-edit
git push -f origin yourbranch

如果其他人正在使用您的存储库,请小心 - 特别是如果它是其他存储库的子模块。

于 2012-12-04T22:24:33.243 回答
1

你必须先在本地做事。

一种选择是进行交互式变基并根据需要更改提交push -f

git rebase -i HEAD~10最后 10 次提交

于 2012-12-04T22:26:01.870 回答
0

最后一次提交可能会为您提供更好的服务revert(即引入一个恢复前一个提交的新提交)。一旦你推送到远程仓库,你不应该重写历史。使用 git,revert 有一个非常具体的含义:创建一个带有反向补丁的提交以取消它。这样你就不会重写任何历史。

git revert sha

然后正常推送,因为您的还原是一个新的提交,它不是一个特殊情况push,不需要强制任何东西。

git-revert手册页在其描述中涵盖了很多内容。Git Community Book 中讨论 git-revert 的另一个有用链接在这里。

于 2012-12-04T22:26:20.093 回答