Git:如何修改服务器的提交?
我已经在 EC2 上的 git 服务器上推送了一些提交,而不是在 github 上。
如何修改 git 服务器上的这些提交?
操作就像 删除提交,例如变基, 更改提交消息
可能吗?
非常感谢。
I have already push some commits on my git server on EC2 , not on github.
How can I modify those commits on the git server?
Operation like
remove commit, like rebasing,
change commit message
Is it possible?
Thanks so much.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以通过强制推动来完成几乎所有事情。将您的本地树更改为您想要的树,然后 git push -f 它将用您本地的树替换服务器上的树。值得注意的是,这会给任何其他拉动您刚刚替换的树的存储库带来麻烦。
You can do just about everything with a forced push. Change your local tree to exactly what you want and
git push -f
and it will replace the tree on the server with what you have locally. It's worth noting that this will cause trouble with any other repos that have pulled the tree you just replaced.如果您想破坏性地编辑远程分支的历史记录(例如
rebase
/amend
),请在本地进行更改,然后执行git push --force
。有时它不起作用(存储库管理员可以禁用此功能);在这种情况下,您可以尝试使用 git push origin :my_branch 删除远程分支,然后使用 git push origin my_branch 再次推送。否则,您可以使用 git revert,如果您在团队中工作,这是推荐的方式(经验法则是不应修改已发布的历史记录)。下面是一个示例(使用 此 Github 存储库):
查看 提交历史,可以看到提交 d14aaa0 不存在。
If you want to edit a remote branch's history destructively (e.g.
rebase
/amend
), make your changes locally and then dogit push --force
. Sometimes it does not work (repository administrators can disable this feature); in that case, you can try deleting the remote branch withgit push origin :my_branch
and then pushing it again withgit push origin my_branch
. Otherwise you can usegit revert
, which is the recommended way if you work in a team (the rule of thumb is that published history should not be modified).Here's an example (using this Github repository):
Looking at the commit history, you can see that commit d14aaa0 is absent.