Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于放弃提交,Git合并挂起_Git_Gerrit - Fatal编程技术网

由于放弃提交,Git合并挂起

由于放弃提交,Git合并挂起,git,gerrit,Git,Gerrit,我有两件事。提交B依赖于提交A。提交A已被放弃。现在我得到合并B的错误。它说提交,合并挂起,因为B依赖于A 我在谷歌上搜索过,但找不到确切的答案。我需要一步一步的解决方案,因为我是git的新手,很难理解如何解决这个问题 事情就是这样 在本地为A提交git git在远程推送一个 A被放弃了,但我的本地git提交了A 同一分支中B的git本地提交(使B依赖于A) git在同一分支中远程推送B 现在B没有合并,因为A被放弃了 我需要合并B,我想删除对A的依赖关系。希望现在天气晴朗 以下是服务器错误:

我有两件事。提交B依赖于提交A。提交A已被放弃。现在我得到合并B的错误。它说提交,合并挂起,因为B依赖于A

我在谷歌上搜索过,但找不到确切的答案。我需要一步一步的解决方案,因为我是git的新手,很难理解如何解决这个问题

事情就是这样

  • 在本地为A提交git

  • git在远程推送一个

  • A被放弃了,但我的本地git提交了A

  • 同一分支中B的git本地提交(使B依赖于A)

  • git在同一分支中远程推送B

  • 现在B没有合并,因为A被放弃了

  • 我需要合并B,我想删除对A的依赖关系。希望现在天气晴朗

    以下是服务器错误:

    更改1184-已提交,合并待定

    在评论中:

    Gerrit代码审查

    由于缺少依赖项,无法合并更改。这个 还必须提交以下更改: (提交id,已被放弃)

    重新设置基础会起作用吗?如果是这样,怎么做?

    是一个和你一样的问题

    如果committ B依赖于a,则在a被合并之前,B不能被合并 合并。既然你已经放弃了,Gerrit不会自动 合并B

    您需要做的是修改B(可能使用
    git-rebase
    ),以便 它不再依赖于,并将更改重新提交给Gerrit

    如何重新设置/合并它

    git-review -d 1184 
    git rebase origin/master
    git status
    <edit "both modified" files in status report>
    git add <files>
    git rebase --continue
    git review
    
    git评论-d 1184
    git重新基址源/主
    git状态
    git添加
    git rebase--继续吗
    git评论
    

    查找有关此类问题的更多有用信息。

    有几种方法可以解决您的问题。选择你觉得最舒服的

    这里有一个:

  • git签出您的分支机构
    (确保您位于正确的分支机构)
  • git reset——硬A^
    (将所有内容重置为A之前的提交)
  • git cherry pick B
    (其中B是要保留的提交的哈希)
  • git日志
    (确认它是您想要的)
  • git push--force
    (可能需要根据您通常的推送方式指定其他选项)
  • 这是另一个结果,结果是等效的:

  • git签出您的分支机构
    (确保您位于正确的分支机构)
  • git-rebase——在^A上
    (将A之后的所有内容重新设置为A之前的提交之上,有效地删除A)
  • git日志
    (确认它是您想要的)
  • git push--force
    (可能需要根据您通常的推送方式指定其他选项)
  • 下面是第三个仍然相同的结果:

  • git签出您的分支机构
    (确保您位于正确的分支机构)
  • git-rebase——交互式A^
    (将打开编辑器)
  • 删除显示提交、保存和关闭的行
  • git日志
    (确认它是您想要的)
  • git push--force
    (可能需要根据您通常的推送方式指定其他选项)

  • 你的问题很不清楚。你跑步的确切时间是多少?输出是什么?你想达到什么目标?我认为这不能用给出的信息来回答。所以说“B不是合并”,你的意思是服务器拒绝提交,因为它不是服务器上当前头的直接后代?你能发布错误消息吗?@SvenMarnach没有两个提交都推送到服务器上。但是A被放弃了,所以没有合并,B也没有合并,因为这取决于A。我对Gerrit不熟悉,也不知道那里发生了什么。如果您将一个分支推送到git服务器,那么头提交可以访问的所有提交都将自动包括在内,因此我不确定在这种情况下如何结束。我的猜测是,您必须调用
    git fetch
    才能在服务器上获取分支的当前版本,在远程头上重新设置或选择提交B,然后再次推送。因为我真的不知道发生了什么,这更多的是一个有根据的猜测,而不是一个答案。我得到——在branch review/vinay_choudhary/1184无需提交,工作目录清理——关于git状态。是的,如果你的历史记录是
    X