Git 吉特公司;Gerrit:如何避免和消除Gerrit中不必要的依赖关系

Git 吉特公司;Gerrit:如何避免和消除Gerrit中不必要的依赖关系,git,gerrit,Git,Gerrit,我正试图在这里找到最好的方法,我需要你的帮助和建议,因为据我所知,Gerrit在同一个分支上接受所有的提交,就像依赖于前一个分支一样 避免依赖关系 最好的方法是在本地创建一个新分支,然后在远程主机上合并变更集并从中提取和重新设置基础后再合并回本地主机分支吗 分解现有不需要的依赖关系 我通常以交互方式重新设置基础,并在提交列表的顶部对我想要独立的提交进行重新排序,然后我git reset--hard HEAD~x并创建新的分支。然后,我继续进行与第1点相同的步骤。 有没有更简单的方法?因为仅仅重

我正试图在这里找到最好的方法,我需要你的帮助和建议,因为据我所知,Gerrit在同一个分支上接受所有的提交,就像依赖于前一个分支一样

  • 避免依赖关系

    最好的方法是在本地创建一个新分支,然后在远程主机上合并变更集并从中提取和重新设置基础后再合并回本地主机分支吗

  • 分解现有不需要的依赖关系

    我通常以交互方式重新设置基础,并在提交列表的顶部对我想要独立的提交进行重新排序,然后我
    git reset--hard HEAD~x
    并创建新的分支。然后,我继续进行与第1点相同的步骤。 有没有更简单的方法?因为仅仅重新排序提交并不能真正打破对Gerrit的依赖,对吗?我也可以删除提交,但我当然不想这样


  • 我是一名实习生,与gerrit一起学习git,最近我遇到了和你一样的问题

    避免依赖关系

    最好的方法是在本地创建一个新分支,然后在远程主机上合并变更集并从中提取和重新设置基础后再合并回本地主机分支吗

    这确实是我被教导做这件事的方式,如果你仔细想想,这是有道理的。这样,您的本地主机总是与远程主机同步,并且因为您创建了“许多”分支,所以您可以更好地控制存储库

    分解现有不需要的依赖关系

    我通常以交互方式重新设置基址,并在提交列表的顶部对我希望独立的提交进行重新排序,然后git reset--hard HEAD~x并创建新的分支。然后,我继续进行与第1点相同的步骤。有没有更简单的方法

    git-rebase-i
    用于对提交进行重新排序,以更改/中断依赖关系,在这种情况下确实是一种方法。至少这是我处理这些情况的方式

    因为仅仅重新排序提交并不能真正打破对Gerrit的依赖,对吗


    是的。如果您在本地对提交进行重新排序,然后再次推送到gerrit,新的补丁集将具有不同的依赖关系。

    我本人是一名实习生,与gerrit一起学习git,我最近遇到了与您相同的问题

    避免依赖关系

    最好的方法是在本地创建一个新分支,然后在远程主机上合并变更集并从中提取和重新设置基础后再合并回本地主机分支吗

    这确实是我被教导做这件事的方式,如果你仔细想想,这是有道理的。这样,您的本地主机总是与远程主机同步,并且因为您创建了“许多”分支,所以您可以更好地控制存储库

    分解现有不需要的依赖关系

    我通常以交互方式重新设置基址,并在提交列表的顶部对我希望独立的提交进行重新排序,然后git reset--hard HEAD~x并创建新的分支。然后,我继续进行与第1点相同的步骤。有没有更简单的方法

    git-rebase-i
    用于对提交进行重新排序,以更改/中断依赖关系,在这种情况下确实是一种方法。至少这是我处理这些情况的方式

    因为仅仅重新排序提交并不能真正打破对Gerrit的依赖,对吗


    是的。如果您在本地重新排序提交,然后再次推送到gerrit,则新的修补程序集将具有不同的依赖项。

    这是一种持续集成问题。是的,为每个功能创建一个本地分支是很好的,因为您可以避免依赖关系,甚至可以轻松地在正在进行的实现之间切换——当然,还可以轻松地在这些提交上创建新的补丁集。但不需要将特征分支与任何本地分支合并。要素分支可以仅使用远程分支保持更新(重定基础)。我使用
    git pull-r
    来避免合并提交。此外,当在推之前创建提交时,最好使用此命令更新本地分支。当Gerrit将提交/补丁集提交到远程分支时,本地分支也可以通过
    git pull-r
    git fetch
    git reset--hard origin/
    进行更新。使用此工作流可以避免合并提交。只有当您有更多远程分支并且希望一次合并一次时,才需要合并提交。我根本没有使用
    git-rebase-I
    来重新安排提交。请记住,如果一个补丁集曾经被推过,那么就不需要在本地保存它。Gerrit的每一项更改/提交都需要更改,并推送一个新的补丁集。

    这是一种持续集成问题。是的,为每个功能创建一个本地分支是很好的,因为您可以避免依赖关系,甚至可以轻松地在正在进行的实现之间切换——当然,还可以轻松地在这些提交上创建新的补丁集。但不需要将特征分支与任何本地分支合并。要素分支可以仅使用远程分支保持更新(重定基础)。我使用
    git pull-r
    来避免合并提交。此外,当在推之前创建提交时,最好使用此命令更新本地分支。当Gerrit将提交/补丁集提交到远程分支时,本地分支也可以通过
    git pull-r
    git fetch
    git reset--hard origin/
    进行更新。使用此工作流可以避免合并提交。只有当您有更多远程分支并且希望一次合并一次时,才需要合并提交。我根本没有使用
    git-rebase-I
    来重新安排提交。请记住,如果一个补丁集曾经被推过,那么就不需要在本地保存它。Gerrit的每一项更改/提交都要进行更改,并推送一个新的补丁集。

    terminolog