分支/更改未合并,尽管 Gerrit 声称,它是

2024-03-29

每次我都看到merged关于我在 Gerrit 中的变化的状态,我确实git pull origin,我可以清楚地看到,我的更改/分支实际上尚未合并到 master 中。

请检查我的 Gerrit 工作流程并告诉我,我做错了什么或缺少什么:

  1. 在本地创建并签出分支。

    git checkout -b 77-blah

  2. Do 魔术并评论所有更改。

    git commit -am "changes to 77-blah"

  3. 使用 UI 创建相同的分支并将其修订版设置为HEAD (this 应该很快就会实现自动化 https://stackoverflow.com/a/20606539/1469208).

  4. 将更改(特定分支)推送到 Gerrit,并使用适当的 refs refs:

    git checkout 77-blah

    git push origin HEAD:refs/for/77-blah

  5. 访问 Gerrit 给我的 URL,查看我的更改或等待其他人查看。

  6. 再次访问更改的 URL,确保Status = Merged.

  7. 从 Gerrit 中提取最新更改:

    git checkout master

    git pull origin

最后一个命令的结果以Already up-to-date,这(如果我不傻的话)意味着我的主人是最新的。在正常的 Git 存储库中,此时这是正确的。我的master分支将变得最新,我最新的(77-blah) 分支已经合并到其中。

在 Gerrit 上,我正在刷新我的网页,我目前正在其中工作(当我在master)却发现,在该特定分支中引入的所有更改都消失了,并且整个网站处于创建最新分支之前的状态。格里特仅索赔,那个我的master已是最新。

我可以确认,通过执行git branch -d 77-blah并得到结果:

error: The branch '77-blah' is not fully merged.
If you are sure you want to delete it, run 'git branch -D 77-blah'.

实际上,我必须手动合并最新的分支本地。我缺少什么?

(用 Gerrit 术语来说)改变是什么意思merged,而实际上没有合并 at all?


您的几个类似问题中的一个共同主题似乎是您认为您应该将本地主题分支推送到 Gerrit 中具有相同名称的分支,并提交更改(即使更改显示为Merged) 意味着 Gerrit 应该将更改合并到master。这是不正确的。

当你推到refs/for/whatever然后提交该更改,提交最终会出现在分支上whatever. Not master。如果您希望更改最终在master你应该推动refs/for/master。所以,Git 声称master是最新的是正确的(该分支不受您提交更改的影响77-blah)并且 Gerrit 声称您的更改已被合并也是正确的(更改已合并到77-blah).

本地主题分支与服务器上维护的分支无关。他们之间存在一对一的关系是不寻常的,也是很少见的。事实上,在 Gerrit 服务器上创建分支(即拥有 Push 权限)refs/heads/*) 通常是大多数用户无法执行的特权操作。他们能做的就是推动refs/for/*上传他们的更改以供审核。他们当然可以在本地创建他们想要的任何分支。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分支/更改未合并,尽管 Gerrit 声称,它是 的相关文章

  • Sourcetree 2.1.2.5 - 显示“未提交的更改”,但没有任何待处理的内容

    我有一个以前没有遇到过的问题 即使我没有什么可提交的 并尝试将我的分支重置为 Sourcetree 显示的最新提交Uncommitted changes 根据 Atlassian 论坛的说法 通常有两个原因 您的工作目录中有很多很多未暂存的
  • Git:man 命令不起作用

    在 Git Bash 中 他们给了我一个error用于返回 man command man git bash man command not found 我的 Git 版本 git version git version 2 18 0 wi
  • Git 显示更改后的相同文件

    当我似乎无法弄清楚更改时 Git 向我显示整个文件已更改 这是 cygwin git 但它也发生在 msysgit 中 git version git version 2 1 1 diff lt git show HEAD File cs
  • emacs 临时文件的 .gitignore 正则表达式

    我正在尝试 gitignore emacs 临时 自动保存文件 我在用着 在我的 gitignore 中 But git add A在子文件夹中运行仍然给我 new file make collections py new file nor
  • 是否可以在一次 git 调用中取消设置多个 git 配置值,而不是逐一取消设置?

    我需要自动取消全局 git 配置文件中的许多别名 diff difftool merge mergetool 设置 现在我正在打电话git config global unset对于他们每个人来说 这有点慢 嗯 相对而言 大约需要 3 秒
  • git 提交消息的 vim 语法高亮显示 - 自定义 commentchar

    如上所述在这个答案中 https stackoverflow com a 14931661 835945 从 Git 1 8 2 开始你可以使用core commentchar配置值将提交消息注释更改为默认值以外的其他内容 哈希标记或哈希符
  • Git ref master 现在为空,如何恢复?

    我不完全确定发生了什么 但由于某种原因 我的 git 存储库的主引用文件现在是空的 我们在 Dropbox 上托管存储库 所以也许与此有关 但现在我无法从中提取 它是这么说的 Your configuration specifies to
  • GIT 中的重复合并。它如何计算差异?

    我一直在做一项研究 试图了解 GIT 合并是如何工作的 我知道有几种合并类型 如递归 章鱼等 我发现解析 递归是最常用的 并且递归合并仅在存在多个共同祖先 基础时才有用 但是 我找不到从分支重复合并到主节点时使用哪种算法 或者如何计算祖先
  • 从分离的头进行 Git 推送

    我以超然的态度做出了一些改变 我想用 Git 将这些更改推送到这个独立的头 我不希望我的更改进入开发分支 当然也不想进入主分支 我正在与另一个人一起处理一个文件 分支示例 develop master HEAD detached at or
  • 如何像对待普通目录一样对待嵌套存储库(子模块)?

    我的 WordPress 网站是使用 Git 进行版本控制的 包括wp content plugins 文件夹 现在有一个插件 wp editormd 带有自己的 Git 存储库 wp content plugins wp editormd
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我
  • `git rm --cached` 和 `git update-index --assume-unchanged` 之间的区别?

    我不明白之间的区别git rm cached and git update index assume unchanged 我知道git rm cached
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • 忽略 git 中的本地配置文件

    Rails 应用程序中有一些本地文件 属于我们存储库的一部分 我希望 git 忽略它们 基本上 我希望 git 忽略我对 config environments 目录和 config application rb 文件中的任何内容所做的所有
  • git diff 在尖括号中显示 unicode 符号

    我有一个带有 unicode 符号 俄语文本 的文件 当我修复一些拼写错误时 我使用git diff color words 看看我所做的改变 如果是 unicode 西里尔文 符号 尖括号会造成一些混乱 如下所示 cat p1 cat p
  • SSH 到 Openshift 服务器失败

    我正在 openshift 服务器上使用 jboss catridge 我希望与其他人共享此实例并添加其他用户的公钥 id rsa pub 当其他人尝试访问该实例时 他会收到以下错误 我在他的实例中尝试了同样的方法 但看到了同样的错误 与
  • 推送时发生 Git 错误 - update_ref 失败

    当我尝试推送本地提交时遇到问题 这可能是在 Android Studio 崩溃时发生的 这是错误 update ref 引用 refs remotes origin master 失败 无法锁定 ref refs remotes origi
  • 代表 Git 存储库的数学结构是什么

    我正在学习 Git 如果我能描述一下代表 Git 存储库的数学结构 那就太好了 例如 它是一个有向无环图 它的节点代表提交 它的节点有代表分支等的标签 每个节点最多一个标签 没有标签使用两次 我知道这个描述不正确 我只是想解释我正在寻找的内

随机推荐