在尝试推送补丁时,我们遇到了以下错误:
错误:无法将一些引用推送到'ssh:// git_bare_repo @ 10.20.88.250 / home / ferrari_users / git_bare_repo / android_m / hlos / platform / frameworks / base' 提示:因为推送的分支提示:分支提示被拒绝更新滞后于其远程对应项。在再次推送之前,检查此分支并集成远程变更提示:(例如,“git pull ...”)提示: 有关详细信息,请参见'git push --help'中的“有关快进的注释”。
当我调试时,我发现了一个gerrit提交的引用,实际上是通过gerrit放弃的,但在Git中没有反映出来。
我们仍然可以在platform/frameworks/base.git/info/refs中看到一个引用
问题是如果我们放弃任何补丁,是否仍会在引用文件夹中保留条目,并且是否有列出放弃的补丁的文件? 我认为这就是特定项目无法同步并且我们无法推送新更改的原因。
Git pull和git checkout指向已通过Gerrit成功合并的最后提交补丁。
我尝试使用git push -f origin HEAD:refs / for / 8939_ferrari_main进行强制推送。它显示补丁推送成功,并且可以在frameworks/base.git/info/refs中看到其条目
但是它没有在gerrit中列出。 是否有删除git裸存储库中此补丁的方法,因为它未在Gerrit中列出? 如果可以分享任何指针以解决此问题,将不胜感激。
编辑 是否有将git裸存储库重置为任何特定标记的方法?
错误:无法将一些引用推送到'ssh:// git_bare_repo @ 10.20.88.250 / home / ferrari_users / git_bare_repo / android_m / hlos / platform / frameworks / base' 提示:因为推送的分支提示:分支提示被拒绝更新滞后于其远程对应项。在再次推送之前,检查此分支并集成远程变更提示:(例如,“git pull ...”)提示: 有关详细信息,请参见'git push --help'中的“有关快进的注释”。
当我调试时,我发现了一个gerrit提交的引用,实际上是通过gerrit放弃的,但在Git中没有反映出来。
我们仍然可以在platform/frameworks/base.git/info/refs中看到一个引用
问题是如果我们放弃任何补丁,是否仍会在引用文件夹中保留条目,并且是否有列出放弃的补丁的文件? 我认为这就是特定项目无法同步并且我们无法推送新更改的原因。
Git pull和git checkout指向已通过Gerrit成功合并的最后提交补丁。
我尝试使用git push -f origin HEAD:refs / for / 8939_ferrari_main进行强制推送。它显示补丁推送成功,并且可以在frameworks/base.git/info/refs中看到其条目
但是它没有在gerrit中列出。 是否有删除git裸存储库中此补丁的方法,因为它未在Gerrit中列出? 如果可以分享任何指针以解决此问题,将不胜感激。
编辑 是否有将git裸存储库重置为任何特定标记的方法?
refs/changes/68/1968/1
,因为 Gerrit 允许“恢复”被废弃的更改。如果使用git push -f
更新了分支foo
,则新提交肯定未经审核。git push -f
表示直接推送,不会为新提交创建 Gerrit 条目。只有通过“git push origin foo:refs/for/foo”推送的提交才能进行审核并具有 Gerrit 条目。 - ElpieKaygit fetch origin 8939_ferrari_main && git log FETCH_HEAD...HEAD
命令,查看是否有任何提交被打印出来。如果没有,则不需要推送本地分支,因为远程分支已经包含了本地分支的所有提交。 - ElpieKaygit fetch origin 8939_ferrari_main && git merge-base xxxxxx FETCH_HEAD
会打印什么?如果它是正确的xxxxxx,那么它对于远程的8939_ferrari_main来说并不是“新的”。 - ElpieKay