引导项目合并新更改
Bootstrapping Project Merge New Changes
我有 a project 让 DI 在 Android 中更容易使用 Dagger。它旨在 bootstrap(或改造)新项目,而不是用作库。因此,我鼓励用户重构项目的某些部分(包、class 名称等),我计划提供一个脚本来为他们做这件事。
我的问题是,一旦项目被 bootstrapped 使用这个,并且对原始代码进行了更改,它们如何集成上游更改?我想他们可以在初始提交之外创建一个分支,引入新的更改,然后重新定位到它,但是有没有更简单的解决方案?
首先,他们需要保留对该上游存储库的引用,类似于 triangular workflow, 除了您不会通过 Pull Request 回馈 "upstream"(此处为 "template")回购:
这样就可以git fetch upstream
,和自己的master比较upstream/master
,甚至upstream/master
和之前的upstream/master
状态(fetch之前),为了检测您应该合并到当前代码库中的任何更改。
不建议重新设置基准,因为它会更改正在重新设置基准的分支的 SHA1,并会强制用户 git push --force
his/her 分支到 origin
存储库。
从 upstream/master
合并甚至 cherry-pick 到正在开发的本地分支的侵入性较小,并且允许之后定期推送。
我有 a project 让 DI 在 Android 中更容易使用 Dagger。它旨在 bootstrap(或改造)新项目,而不是用作库。因此,我鼓励用户重构项目的某些部分(包、class 名称等),我计划提供一个脚本来为他们做这件事。
我的问题是,一旦项目被 bootstrapped 使用这个,并且对原始代码进行了更改,它们如何集成上游更改?我想他们可以在初始提交之外创建一个分支,引入新的更改,然后重新定位到它,但是有没有更简单的解决方案?
首先,他们需要保留对该上游存储库的引用,类似于 triangular workflow, 除了您不会通过 Pull Request 回馈 "upstream"(此处为 "template")回购:
这样就可以git fetch upstream
,和自己的master比较upstream/master
,甚至upstream/master
和之前的upstream/master
状态(fetch之前),为了检测您应该合并到当前代码库中的任何更改。
不建议重新设置基准,因为它会更改正在重新设置基准的分支的 SHA1,并会强制用户 git push --force
his/her 分支到 origin
存储库。
从 upstream/master
合并甚至 cherry-pick 到正在开发的本地分支的侵入性较小,并且允许之后定期推送。