Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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 review';一个被迫推挤的Gerrit?_Git_Gerrit_Git Review - Fatal编程技术网

是';git review';一个被迫推挤的Gerrit?

是';git review';一个被迫推挤的Gerrit?,git,gerrit,git-review,Git,Gerrit,Git Review,我对git review的工作原理有点困惑 我在这里获得了官方文档,但仍然无法理解如何修改下载的更改,然后使用git commit--amend和git review进行简单推送 我的意思是,这难道不等于改写历史/更改以提交吗 还有git review-R,想知道什么时候为什么要使用它?如果您: 下载打开的更改 做些改变 承诺——修改 推送至Gerrit(参考/适用/分支机构) 您将为以前的更改创建一个新的修补程序集。“git review”只是一个使步骤1和步骤4更容易/自动化的工具 “git

我对git review的工作原理有点困惑

我在这里获得了官方文档,但仍然无法理解如何修改下载的更改,然后使用
git commit--amend
git review
进行简单推送

我的意思是,这难道不等于改写历史/更改以提交吗

还有
git review-R
,想知道什么时候为什么要使用它?

如果您:

  • 下载打开的更改
  • 做些改变
  • 承诺——修改
  • 推送至Gerrit(参考/适用/分支机构)
  • 您将为以前的更改创建一个新的修补程序集。“git review”只是一个使步骤1和步骤4更容易/自动化的工具

    “git review-R”用于在推送步骤之前跳过git review执行的自动“git rebase-i”步骤。如果你不确定“git-rebase-i”是什么,我认为它是好的,不要使用它


    我建议您阅读Gerrit文档中的项目,以了解更多关于Gerrit的信息,并了解其工作原理

    我找到了完整的答案。 torek和Marcelo的评论也起到了帮助作用

    基本上,推送到gerrit不是推送到分支,而是一个暂存区域(挂起的更改),它是对分支的引用,最终每个提交都将合并到该分支


    这些REF也不完全是REF,而是一些Gerrit魔术,用来欺骗客户相信存在这样的问题

    ,因此它将使用更新的补丁集创建一个新分支?因为尝试推动相同的前一个分支需要
    --force
    选项?这个链接在Gerrit和githubNo之间形成了一些对比。你还没有推动到分支,你正在推动审查(一个“神奇的”分支)。我认为你需要更多地了解Gerrit,才能理解它是如何工作的。我建议您阅读Gerrit文档中的“快速介绍”项目:我刚刚在答案中添加了Gerrit文档。感谢您的解释和链接。我在你的回答中发现了更多的细节,这是一个打字错误吗“如果你不确定……使用它很好”。你的意思是不使用它吗?我实际上没有使用Gerrit,但它实际上必须使用git push。我相信它用于审查的引用是
    refs/for/
    ,显然它必须重新创建指向新提交的引用。你是说重新创建分支,即新分支?我是说重新创建引用
    refs/for/abc
    不是分行名称,它只是一个参考
    refs/heads/master
    是一个分支名称,
    refs/tags/v1.2
    是一个标记名称,这三个名称都是引用。“参考”一词是一般形式。分支是名称以
    refs/heads/
    开头的引用。当您运行
    gitpush
    时,您的git会要求另一个git设置或更改引用。允许另一个Git拒绝;如果你“强行推动”,你会向它发出一个更为坚持的要求,而它可能仍然拒绝。是否需要用力推动,或是否足够,请[续]。。。由另一个Git决定。要使
    refs/for/abc
    指向新的散列ID,Gerrit将执行任何需要的操作,无论是强制推送、删除并重新创建还是其他操作。请注意,这完全取决于Gerrit、您的Git和外国Git,以确定如何使所有这些工作正常进行,但只要Gerrit使用
    refs/for/
    ,这就不会干扰任何分支,因为所有分支都是从
    refs/heads/
    开始的。