【问题标题】:How to push repo after reverting local branch? [duplicate]恢复本地分支后如何推送回购? [复制]
【发布时间】:2020-09-13 10:24:48
【问题描述】:

所以我有一个 git repo,我已经提交并将 repo 推送到服务器。然后我用 git revert 回滚了一些提交到本地的先前提交。现在,当我尝试推送到服务器时,我得到了错误

提示:更新被拒绝,因为您当前分支的提示是 背后的提示:它的远程对应物。集成远程更改 (例如提示:'git pull ...')在再次推动之前。提示:见'注 'git push --help' 中关于快进'的详细信息。

我知道我在本地分支上恢复了,所以现在远程分支上的提交不在本地分支上。我只想删除服务器上的那些提交。我只想能够按原样推送我的本地分支并“替换”服务器上的头部。我怎么做?我不想从服务器中提取更改,因为无论如何我都想丢弃这些更改。

【问题讨论】:

标签: git


【解决方案1】:

这是你需要执行--force-with-lease推送的时间:

git push --force-with-lease <remote> <branch>

例如:

git push --force-with-lease origin 1234-my-feature

警告:--force 及其变体“带租约”允许您更改分支的历史记录,从而有效地删除一个或多个提交。因此,在分布式环境中依赖强制推送应该仍然是例外,或者只有在您确定没有人在创建自己的分支时依赖 1234-my-feature 时才执行。请参阅 git push --force-with-lease vs. --force 了解它们的区别。

一个常见的约定是:特性分支可能被它们各自的所有者/作者强制推送,但是一旦它们被合并到 master 或共享的 development 分支,它们的历史可能不再被修改。但是您的里程可能会有所不同,具体取决于您的开发环境组织的松散/严格程度。

【讨论】:

    猜你喜欢
    • 2020-07-29
    • 2021-11-23
    • 2015-10-02
    • 2021-01-01
    • 2019-02-13
    • 2012-09-14
    • 2020-06-11
    • 2019-02-22
    • 2013-12-27
    相关资源
    最近更新 更多