Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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 包括父母在内的Gerrit Rebase_Git_Gerrit - Fatal编程技术网

Git 包括父母在内的Gerrit Rebase

Git 包括父母在内的Gerrit Rebase,git,gerrit,Git,Gerrit,在gerrit中,我通常将多个小提交推到一起。一旦他们被审查并准备好提交,我会看到按钮Submit(包括家长)上的所有更改,而第一个更改有一个Submit按钮 在审查这些更改时,目标分支的负责人往往会提前提交我的更改。如果我要将这一整套更改重新定位到分支机构的当前负责人,则需要在本地系统上手动执行,然后再次推送到gerrit。我想知道我们是否有一些选项,比如Rebase include parents,我可以在不必在本地系统上做任何事情的情况下重新设置整个链的基础(只有在没有冲突的情况下)?,它

在gerrit中,我通常将多个小提交推到一起。一旦他们被审查并准备好提交,我会看到按钮
Submit(包括家长)
上的所有更改,而第一个更改有一个
Submit
按钮

在审查这些更改时,目标分支的负责人往往会提前提交我的更改。如果我要将这一整套更改重新定位到分支机构的当前负责人,则需要在本地系统上手动执行,然后再次推送到gerrit。我想知道我们是否有一些选项,比如
Rebase include parents
,我可以在不必在本地系统上做任何事情的情况下重新设置整个链的基础(只有在没有冲突的情况下)?

,它引入了Rebase按钮,如图所示

重基只涉及一个分支,父分支中可能有祖先提交

如果您的本地父分支在重新基准后发生更改,最简单的方法是获取Gerrit repo并将本地分支重置为新的远程分支

git branch -f myBranch origin/myBranch
git branch -f myParentBranch origin/myParentBranch

通过这种方式,在Gerrit端完成重新基础,并在本地完成重置。

如果您希望目标分支的历史记录尽可能线性,请转到项目->常规页面,并在必要时将
提交类型更改为
重新基础。当您按
Submit
Submit include parents
时,这些提交将自动重设到目标分支的当前头上,而不是递归合并。请注意,每次更改都会创建新的修补程序集,以防您需要记录提交sha1。如果需要,不要忘记同步您的本地分支

git fetch origin <target-branch>
git reset FETCH_HEAD --hard
git获取来源
git重置取头-硬
我想知道我们是否有一些选择,比如包括父母在内,我可以在不必在本地系统上做任何事情的情况下重新调整整个链条的基础(只有在没有冲突的情况下)

不,Gerrit没有这样的特征。在Gerrit的UI中实现这一点的唯一方法是从下到上分别重新设置系列中每个更改的基础


我已经创建了一个添加“包括家长在内的再基础”功能的工具。

第一部分对我来说不是问题,我已经相应地编辑了问题描述。啊,好的,编辑后更清晰。谢谢我已将此作为功能请求添加:您可以查看该问题以获取进度更新。谢谢。请将此链接作为未来访问者答案的一部分,或许您也可以删除答案的第一部分。:)我已经按照建议编辑了答案。请将其标记为正确答案:)我们已经有此设置,并且没有在Gerrit服务器上创建合并提交。它总是被重定基调。只是我想要一系列未提交的提交,这些提交可以在目标分支上重新设置基础。@Mukund在提交之前,您似乎必须使用按钮
rebase
逐个重新设置基础。