如何解决使用master变基后无法推送到远程分支?
所以我在我的分支上使用了 Id
- 但我想将这些更改推送到我的远程分支。但是,每当我尝试使用 >>> stacked = df.rename(columns=lambda c: int(c.split()[-1]),level=0).stack(level=0)
>>> stacked
Col_A Col_B
2021-07-15 1 1 2
2 3 4
2021-07-16 1 5 6
2 7 8
>>> stacked.rename_axis(['Date','Header_No']).reset_index()
Date Header_No Col_A Col_B
0 2021-07-15 1 1 2
1 2021-07-15 2 3 4
2 2021-07-16 1 5 6
3 2021-07-16 2 7 8
时,我都会得到以下信息:
git rebase origin/main
我之前已经推送到这个分支,所以我知道远程存在。我只想用我的 rebase 的更改来更新它。我想到了从其他堆栈溢出线程使用强制推送的想法,但它似乎不起作用。任何人有任何想法?我只想用 rebase 的更改更新远程分支。谢谢
解决方法
如果你之前(没有 -f)推送到这个分支并且它有效,看起来分支被保护免于重写,这是主分支的常见策略和良好实践(例如 master
或 { {1}}) 因为重写它会影响任何基于它工作的人。
您可能想要经常做的是在没有 rebase 的情况下拉取新的更改,然后您就不会遇到那个问题。但是,如果您真的想重写它,则需要获得许可才能这样做。假设您拥有它,您可以在任何常用版本控制提供程序(github、bitbucket、gitlab 等)的管理设置中找到添加/删除分支保护的设置。
如何在无法重写的分支上撤消变基
根据您的情况,您可以通过多种方式执行此操作,但接下来的命令应该对大多数情况有用:
main
- 查看您的 HEAD 指向的所有提交(查看变基前的情况很有用,因为您可以对变基前的最后一个散列执行 git reflog
,您会看到您不想丢失的每个本地工作提交)。
git log <hash>
- 将分支重置为历史上的任何点,例如重置为变基之前的情况或远程版本,具体取决于您希望如何处理它
git reset --hard <hash>
- 在当前分支中应用单个提交
假设您了解创建/删除分支和提交的基础知识,通过这些命令,您可以将情况恢复到 rebase 之前的状态。
例如,您可以将本地工作移动到临时分支,重新创建您重新定位的分支,将其重置为远程版本,然后从临时分支中挑选每个有价值的提交。
或者,如果您在 git cherry-pick <hash>
之后记录了所有有价值的提交,您可以简单地将分支重置为 rebase 之前的状态,然后挑选这些提交。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。