在等待 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 分支。这是我在这种情况下使用的工作流程:

  1. 打开 user_story_1 的合并请求:

      * (user_story_1)
      *
     /
    * (master)
    *
    *
    
  2. 根据user_story_1:

    创建新分支user_story_2
    $ git checkout -b user_story_2 user_story_1
      * (user_story_1, user_story_2)
      *
     /
    * (master)
    *
    *
    
  3. 在新分支上工作:

      * (user_story_2)
      *      
      * (user_story_1)
      *
     /
    * (master)
    *
    *
    
  4. 合并请求:

      * (user_story_2)
      *      
    * | (master)
    |\|
    | * (user_story_1)
    | *
    |/
    *
    *
    *
    
  5. 删除旧分支:

      * (user_story_2)
      *      
    * | (master)
    |\|
    | *
    | *
    |/
    *
    *
    *
    
  6. 将新分支重新设置为 master:

      * (user_story_2)
      *      
     /
    * (master)
    |\
    | *
    | *
    |/
    *
    *
    *
    

我的首选工作流程:

  1. 在分支主机上,git checkout -b user_story_1
  2. 更改 user_story_1
  3. 打开 user_story_1 的 PR。
  4. 在分支 user_story_1git checkout -b user_story_2
  5. 更改 user_story_2
  6. 一旦 user_story_1 合并到 master 中,切换到 user_story_2 并执行 git rebase -i master
  7. 这应该会向您显示要包含在变基中的 user_story_2 上的提交列表。删除来自 user_story_1.
  8. 的前几个提交
  9. rebase 应该干净地完成,除非 master 更新了其他更改。现在你 user_story_2 重新基于 master 并且只有它的提交。