关于'git-rebase-master'步骤、github以及提交移动到何处的问题

关于'git-rebase-master'步骤、github以及提交移动到何处的问题,git,Git,我开始了一份新的工作,他们在提出拉取请求之前更倾向于对master进行重定。我使用重定基调主要用于壁球比赛,所以我想确保我了解被要求我做什么以及它在做什么 基本上,我的理解是他们希望你: 在“功能”分支上进行更改 承诺 git推送myfeature分支 生成拉取请求并获得审核/批准 批准后,移动到主控获取签出主控和git pull,以便主控是最新的 移动到功能分支git签出功能,并针对主分支git-rebase-master在本地重新设置基址。这将带来来自master的所有更改,并将在特性提交时

我开始了一份新的工作,他们在提出拉取请求之前更倾向于对master进行重定。我使用重定基调主要用于壁球比赛,所以我想确保我了解被要求我做什么以及它在做什么

基本上,我的理解是他们希望你:

  • 在“功能”分支上进行更改
  • 承诺
  • git推送
    myfeature分支
  • 生成拉取请求并获得审核/批准
  • 批准后,移动到主控
    获取签出主控
    git pull
    ,以便主控是最新的
  • 移动到功能分支
    git签出功能
    ,并针对主分支
    git-rebase-master
    在本地重新设置基址。这将带来来自master的所有更改,并将在特性提交时重新校准您的sha1哈希。您的提交将放在主服务器最后一次提交的顶部。此步骤不会以任何方式更改主分支
  • 最后,强制向上推拉请求,因为commit sha1都是不同的'git push-f'
  • 合并到主拉请求中
  • 这意味着您的拉取请求将与master是最新的,并且不应该冲突。这听起来可行/有点标准吗?还是我遗漏了什么

    在提出拉取请求之前,对主控形状进行重新调整

    绝对正确。这是完全标准的操作程序

    这是我的想法。你做一根树枝,然后在上面工作

    A <- B <- C [master]
               \
                [branch]
    
    现在您完成了工作,准备合并。在共享工作流中,您这样做的方式是使用push+pull请求,以便其他人可以在合并之前检查您的工作

    好的,就在push plus pull请求之前,您可以快速切换到
    master
    develope
    或任何内容,然后
    pull
    将其更新,现在切换回您的分支,并在
    master
    develope
    或任何内容之上对其重新设置基础

    A <- B <- C <- D <- E [master]
                         \
                          J´ <- K´ [branch]
    

    A您可以跳过go to master/pull/checkout feature branch/rebase过程,并使其成为:
    git fetch origin;git rebase origin/master
    (假设它是origin remote和master分支)。其他一切听起来都正常/符合最佳实践吗?我觉得有时候我看到,
    git-rebase-master
    在“master的顶部”重放提交,似乎暗示它们在此时被移动到master上。然而,这似乎不是真的——而是在master上而不是在我的分支上的提交被移过去,而sha1被重新计算。很明显,我不想做一些改变大师的事,你明白了。当然。。。“重设基准”将重新创建/重新应用在要素分支上创建的修订,该修订位于用作基准的分支的当前位置之上。。。就好像您已经在分支的当前尖端上开始了开发(并且修订与原始修订无关……有一个选项可以保留旧ID,但我认为它没有被太多使用,并且如果没有链接,没有任何东西可以阻止旧修订成为GC)。。。但是它可以做很多其他的事情。Rebase非常强大,但这是基本用例之一。谢谢!顺便说一句,我喜欢你的书。有可能多次重新定基吗?或者这样做会带来问题吗?这是绝对可能的,这正是我所做的。在我的分支的整个生命周期中,我一直在做我刚才描述的事情:切换和拉动,切换和重新设置基础。那样的话,我总是尽可能地跟上时代。我经常这样做,就像每隔几个小时!然后在推之前我再做最后一次这其中一个好处是,我不仅基于最新的官方代码,而且如果有冲突,我会尽早发现并解决它们,这样在匆忙的最后一刻最终重新调整期间,就不会有太多或根本没有冲突。我唯一不同意的是强制推送。在完成分支并准备好推拉请求之前,我根本不推。所以不需要武力,因为没有历史可以改变。你只需要用力推,然后重新调整,然后再推。这是一个意见问题;有些人确实在前进的过程中用力推动。但我不喜欢这样。
    A <- B <- C <- D <- E [master]
                         \
                          J´ <- K´ [branch]