我在一个基于PR的工作流程中工作,这里是创建的情况
从master
创建了两个分支
1. branchA library changes, with its own ongoing PR
2. branchB app depending on library, with its own ongoing PR
字符串
两者都是两个不同的开发者。branchA
更改了一些API,现在branchB
必须适应这些API。branchB
必须接受branchA
的这些更改,以便在API changes
之后测试一切是否正常。我现在正在遵循这种方法。
从branchB
开始
git fetch
git merge branchA
型
构建代码并检查branchB
中的更改是否与branchA
中的API更改同步。
第1期-接下来,我将更改推送到PR,但现在PR中包含了branchA
中的文件以及branchB
中的更改。这是因为branchA
尚未合并到master
,并且仍在其自己的PR审查中。
为避免上述问题,我会采取以下措施-
我在git文件夹外创建了我的更改的本地副本,使用
git reset --hard
型
现在我把这些更改从本地文件夹带到git,然后推送到PR。
第2期-现在由于Continuous Integration(CI) jenkins
的原因,branchA
和branchB
PR的构建都失败。为了避免这种情况,我禁用了jenkins上的app
构建,以便branchA
PR通过CI
。然后,我在app
构建打开的情况下,按下branchB
。
问题-
1.由于相关性,应如何维护两份PR,以便每份PR都有自己的文件供审查。
1.我们处理CI的方法是否正确?即禁用应用程序,直到库更改进入,然后推送应用程序
1.或者,通过内部讨论将一个分支与其他分支(after individual PRs are reviewed
)合并,创建包含所有更改的one big PR
,然后推送。
2条答案
按热度按时间blpfk2vs1#
你描述了一个后端/前端工作流。根据我的经验,后端是先做的,然后是前端。这是最简单的。
也许你描述了一个截止日期很紧的情况。这样,后端可以只准备一个API,而不需要实际的业务逻辑,并提供具有正确格式的假数据,以便前端可以更快地开始工作。另一种解决方案是,完全在前端模拟假API,但这更脆弱,因为通常后端更了解API的工作方式以及确切的数据格式。
但是如果你想要你的GIT工作流程(我将描述前端的工作):
branchB
时 checkout 后端文件夹:字符串
其中
src/backend
-后端文件夹型
(You也可以使用
git restore
)型
origin/branchB
型
hc8w905p2#
OP在评论中询问如果两个分支都是后端,那么我们就有了在不同分支中处理相同文件的情况!
嗯,它变得更有趣,但解决方案可能更容易:
branchB
上,准备一个包含branchA
更改的补丁,将其放置在存储库之外:字符串
branchB
:型
branchA
中更改的相同文件branchA
回滚更改:型
请注意,这更容易出错,因为您可能会在相同的代码行上工作…
为了改进DX,所有这些场景都可以被脚本化/自动化,添加到git中,并提供给团队的所有成员。