Git 如何构造相关的pull请求

Git 如何构造相关的pull请求,git,github,github-codereviews,Git,Github,Github Codereviews,我正在开发一个web应用程序的很大一部分,并为我分配了几张jira票,以便一步一步地完成它:例如 任务1:创建显示项目列表的部分主页 任务2:创建包含详细项目描述的页面 任务3:在详细页面上添加创建/编辑/删除按钮以执行CRUD操作 因此,就jira罚单而言,一切都很清楚,但是如果每个任务在某种程度上依赖于前一个任务,我应该如何组织github pull request(PR)系统的工作呢 例如,我为任务1创建了一个新分支,完成了它并创建了一个PR。然后开始处理任务2:根据任务1分支创建了

我正在开发一个web应用程序的很大一部分,并为我分配了几张jira票,以便一步一步地完成它:例如

  • 任务1:创建显示项目列表的部分主页
  • 任务2:创建包含详细项目描述的页面
  • 任务3:在详细页面上添加创建/编辑/删除按钮以执行CRUD操作
因此,就jira罚单而言,一切都很清楚,但是如果每个任务在某种程度上依赖于前一个任务,我应该如何组织github pull request(PR)系统的工作呢

例如,我为任务1创建了一个新分支,完成了它并创建了一个PR。然后开始处理任务2:根据任务1分支创建了一个新分支,完成了工作,现在我必须创建另一个PR,但目标分支应该是什么?如果我选择dev,PR将包括任务1的内容(这使得审查变得困难,而且似乎不正确)。也许我应该等待第一个PR被合并,然后才开始处理任务2(但是所有的工作都会停止,直到任务1被合并)

我遇到的另一个问题是:假设sprint管理层在结束时决定我们不再需要应用程序中的列表页面(任务1),详细页面就足够了(任务2和更高版本)。这两个PRs仍在代码审查中,任务2基于任务1分支。在这种情况下我该怎么办?

这是我个人的处理方法:将一个分支堆叠在另一个分支上,将真正的目标分支设置为目标分支,而不是每个票证的起始分支。当你创建PRs时,当你有更多的票证时,一张在另一张上面,你将很难看到每个票证是关于什么的。您可以将目标分支设置为开始工作的分支,但在以后开始合并这些分支时,必须小心更改目标分支,以便在合并子分支时,它们不会最终合并到另一个PRs分支中,然后丢失

现在,这是可以管理的,但就移动分支而言,这并不是微不足道的。假设你在ticket1上工作,从master开始。。。你完了。。。然后从ticket1开始选择ticket2。。。你已经完成了。。。。现在你从票2开始票3。。。。你就完了

然后你意识到你需要在ticket2上做点什么,你怎么做?你可以换票2。。。那么ticket3会发生什么?特别是如果你想把ticket2变成ticke3。然后你可以在ticket2的上面重新设置ticket3的基址,如果应该的话

如果ticket1上需要更改,如何?同样,您需要将更改拉入ticket2和ticket3。你如何进行?最简单的路线?在ticket1上重新设置ticket3的基址,然后找到ticket2必须位于的位置并将分支放在那里

这很简单,因为您正在同步移动分支,但如果基础分支属于其他分支,则可能会更加复杂。。。。如果此人对分支进行了重定,会发生什么情况?你会要求重新设定基准吗?你不能仅仅因为你不负责你开始工作的分支的修订就这么做。。。。事实上,如果您重新设置基础,您可能会在没有注意到的情况下将从基本分支中删除的内容带到最后。看见它是可管理的,但不是琐碎的。

这是我个人的处理方法:将一个分支堆叠在另一个分支上,将真正的目标分支设置为目标分支,而不是每个票证的起始分支。当你创建PRs时,当你有更多的票证时,一张在另一张上面,你将很难看到每个票证是关于什么的。您可以将目标分支设置为开始工作的分支,但在以后开始合并这些分支时,必须小心更改目标分支,以便在合并子分支时,它们不会最终合并到另一个PRs分支中,然后丢失

现在,这是可以管理的,但就移动分支而言,这并不是微不足道的。假设你在ticket1上工作,从master开始。。。你完了。。。然后从ticket1开始选择ticket2。。。你已经完成了。。。。现在你从票2开始票3。。。。你就完了

然后你意识到你需要在ticket2上做点什么,你怎么做?你可以换票2。。。那么ticket3会发生什么?特别是如果你想把ticket2变成ticke3。然后你可以在ticket2的上面重新设置ticket3的基址,如果应该的话

如果ticket1上需要更改,如何?同样,您需要将更改拉入ticket2和ticket3。你如何进行?最简单的路线?在ticket1上重新设置ticket3的基址,然后找到ticket2必须位于的位置并将分支放在那里

这很简单,因为您正在同步移动分支,但如果基础分支属于其他分支,则可能会更加复杂。。。。如果此人对分支进行了重定,会发生什么情况?你会要求重新设定基准吗?你不能仅仅因为你不负责你开始工作的分支的修订就这么做。。。。事实上,如果您重新设置基础,您可能会在没有注意到的情况下将从基本分支中删除的内容带到最后。看见这是可以管理的,但不是微不足道的。

回答这个问题有多种选择

我从
develope
-分支创建所有分支,在拉请求之后,我将所有分支合并回develope,该
develope
-分支是主分支

基于开发分支创建例如任务1分支。在此分支中进行需要的更改,将其推送到github并在那里创建一个pull请求。现在,如果要继续工作,请基于分支1为任务2等创建分支2。所以不要为了发展分支而结帐。分支机构A正在等待批准。如果A分支机构批准并合并回开发分支机构,则B分支机构为基础