是';git review';一个被迫推挤的Gerrit?
我对git review的工作原理有点困惑 我在这里获得了官方文档,但仍然无法理解如何修改下载的更改,然后使用是';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 commit--amend
和git review
进行简单推送
我的意思是,这难道不等于改写历史/更改以提交吗
还有git review-R
,想知道什么时候为什么要使用它?如果您:
我建议您阅读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/
开始的。