在等待 PR 期间工作
Working while waiting for pending PR
我正在做一个项目,我提交了我的第一个 pull request,在等待的时候,我想继续我的项目工作,从我在合并上所做的工作建立起来,但仍然悬而未决。现在我有:
*master
user_story_1
user_story_1
有一个开放的拉取请求。
现在我正在尝试创建一个新分支 user_story_2
,在那里我可以继续我在 user_story_1
留下的工作。我怎样才能在 Git 中执行此操作而不陷入任何冲突或影响我的待处理合并?
为每个 stories/features.
从 master 创建一个新分支
在合并每个分支之前,要么将 master 合并到那个分支,要么将你的分支 rebase 到 master。后者是我的偏好,但最终结果是一样的
你会遇到冲突,这是没有办法解决的。但是,您想解决分支中的冲突;不在主人。这样,您可以在 解决冲突后测试您的分支,然后 将其合并到 master.
我假设您想在 user_story_1
中完成的工作的基础上开始新的 user_story_2
分支。这是我在这种情况下使用的工作流程:
打开 user_story_1
的合并请求:
* (user_story_1)
*
/
* (master)
*
*
根据user_story_1
:
创建新分支user_story_2
$ git checkout -b user_story_2 user_story_1
* (user_story_1, user_story_2)
*
/
* (master)
*
*
在新分支上工作:
* (user_story_2)
*
* (user_story_1)
*
/
* (master)
*
*
合并请求:
* (user_story_2)
*
* | (master)
|\|
| * (user_story_1)
| *
|/
*
*
*
删除旧分支:
* (user_story_2)
*
* | (master)
|\|
| *
| *
|/
*
*
*
将新分支重新设置为 master
:
* (user_story_2)
*
/
* (master)
|\
| *
| *
|/
*
*
*
我的首选工作流程:
- 在分支主机上,
git checkout -b user_story_1
。
- 更改
user_story_1
。
- 打开
user_story_1
的 PR。
- 在分支
user_story_1
、git checkout -b user_story_2
。
- 更改
user_story_2
。
- 一旦
user_story_1
合并到 master 中,切换到 user_story_2
并执行 git rebase -i master
。
- 这应该会向您显示要包含在变基中的
user_story_2
上的提交列表。删除来自 user_story_1
. 的前几个提交
- rebase 应该干净地完成,除非 master 更新了其他更改。现在你
user_story_2
重新基于 master 并且只有它的提交。
我正在做一个项目,我提交了我的第一个 pull request,在等待的时候,我想继续我的项目工作,从我在合并上所做的工作建立起来,但仍然悬而未决。现在我有:
*master
user_story_1
user_story_1
有一个开放的拉取请求。
现在我正在尝试创建一个新分支 user_story_2
,在那里我可以继续我在 user_story_1
留下的工作。我怎样才能在 Git 中执行此操作而不陷入任何冲突或影响我的待处理合并?
为每个 stories/features.
从 master 创建一个新分支在合并每个分支之前,要么将 master 合并到那个分支,要么将你的分支 rebase 到 master。后者是我的偏好,但最终结果是一样的
你会遇到冲突,这是没有办法解决的。但是,您想解决分支中的冲突;不在主人。这样,您可以在 解决冲突后测试您的分支,然后 将其合并到 master.
我假设您想在 user_story_1
中完成的工作的基础上开始新的 user_story_2
分支。这是我在这种情况下使用的工作流程:
打开
user_story_1
的合并请求:* (user_story_1) * / * (master) * *
根据
创建新分支user_story_1
:user_story_2
$ git checkout -b user_story_2 user_story_1
* (user_story_1, user_story_2) * / * (master) * *
在新分支上工作:
* (user_story_2) * * (user_story_1) * / * (master) * *
合并请求:
* (user_story_2) * * | (master) |\| | * (user_story_1) | * |/ * * *
删除旧分支:
* (user_story_2) * * | (master) |\| | * | * |/ * * *
将新分支重新设置为
master
:* (user_story_2) * / * (master) |\ | * | * |/ * * *
我的首选工作流程:
- 在分支主机上,
git checkout -b user_story_1
。 - 更改
user_story_1
。 - 打开
user_story_1
的 PR。 - 在分支
user_story_1
、git checkout -b user_story_2
。 - 更改
user_story_2
。 - 一旦
user_story_1
合并到 master 中,切换到user_story_2
并执行git rebase -i master
。 - 这应该会向您显示要包含在变基中的
user_story_2
上的提交列表。删除来自user_story_1
. 的前几个提交
- rebase 应该干净地完成,除非 master 更新了其他更改。现在你
user_story_2
重新基于 master 并且只有它的提交。