gpt4 book ai didi

git - 补丁没有被推送到 gerrit

转载 作者:太空狗 更新时间:2023-10-29 13:27:06 26 4
gpt4 key购买 nike

当我们尝试推送补丁时,我们收到以下错误:

error: failed to push some refs to'ssh://git_bare_repo@10.20.88.250/home/ferrari_users/git_bare_repo/android_m/hlos/platform/frameworks/base'

hint: Updates were rejected because a pushed branch tip is behind its

remote hint: counterpart. Check out this branch and integrate the

remote changes hint: (e.g. 'git pull ...') before pushing again. hint:

See the 'Note about fast-forwards' in 'git push --help' for details.

当我调试时,我发现了一个 gerrit 提交的引用,它实际上是通过 gerrit 放弃的,但没有反射(reflect)在 Git 中。

我们仍然可以在 platform/frameworks/base.git/info/refs 中看到引用

eec90465656f3426cd5a45e5333cec90f07982c1 refs/changes/68/1968/1

所以第一个问题是,如果我们放弃任何补丁,该条目是否仍会存在于 refs 文件夹中,是否有任何文件列出已放弃的补丁?

我想这就是具体项目无法同步的原因,我们无法推送新的变更。

Git pull 和 git checkout,指向已通过 Gerrit 成功 merge 的最后一个提交补丁。

我尝试使用git push -f origin HEAD:refs/for/8939_ferrari_main 强制推送它显示补丁推送成功并且可以在frameworks/base 中看到它的条目.git/info/refs

cdd319b12cc422541b101e25470317ca28ddf6bc
refs/for/8939_ferrari_main

但它没有在 gerrit 中列出。有什么方法可以从 git bare repo 中删除这个补丁,因为它没有在 Gerrit 中列出。

如果可以共享任何指示来解决问题,我们将不胜感激。


编辑

有什么方法可以将 git bare repo 重置为任何特定的标签吗?

最佳答案

要将裸仓库重置为某个 TAG ,您需要在 refs/heads/BRANCH 上具有 force push 访问权限。

警告这将使您丢失在标记之后完成的提交!

git clone <REPO>
git checkout master
git reset --hard <TAG>
git push --force origin HEAD:refs/heads/master

关于git - 补丁没有被推送到 gerrit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51320359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com