Git分支、签出和合并,试图理解它的用法

Git分支、签出和合并,试图理解它的用法,git,github,version-control,Git,Github,Version Control,作为一个没有经验的git用户,我试图理解为什么要在本地存储库中使用一个新分支,并在更改准备就绪时将其与master合并。我的假设正确吗?如果您想在完成本地工作后将主分支推送到远程存储库,并且收到主分支“过时”的消息,那么这一点特别有用吗?换言之: git将repo克隆到我的本地计算机 吉特分行新科 吉特结帐新科 在我完成我在新科的工作后:git checkout master git合并新分支 git推送到远程回购 您的工作落后的消息,因为在我克隆回购协议后,其他人进行了更改 git-pull;

作为一个没有经验的git用户,我试图理解为什么要在本地存储库中使用一个新分支,并在更改准备就绪时将其与master合并。我的假设正确吗?如果您想在完成本地工作后将主分支推送到远程存储库,并且收到主分支“过时”的消息,那么这一点特别有用吗?换言之:

  • git将repo克隆到我的本地计算机
  • 吉特分行新科
  • 吉特结帐新科
  • 在我完成我在新科的工作后:git checkout master
  • git合并新分支
  • git推送到远程回购
  • 您的工作落后的消息,因为在我克隆回购协议后,其他人进行了更改
  • git-pull;现在,我的本地主分支是最新的
  • git合并新分支
  • git推送到远程回购
  • 当一切正常时,我可以删除我的本地新分支
  • 我的想法对吗?我的第7点是您应该始终在新创建的本地分支而不是本地主分支中进行更改的主要原因吗?因此,新的本地分支作为您的更改的备份,您可以将其与主分支再次合并

    希望解释清楚

    Thx, 卢克

    作为一个没有经验的git用户,我试图理解为什么要在本地存储库中使用一个新分支,并在更改准备就绪时将其与master合并

    这一切都是关于保持master作为工作的稳定基线,并通过保持独立的事物来降低复杂性。那可能是你和别人之间的事,也可能是你和你自己之间的事。很多编程都是为了不让事情纠结在一起

    如果突然你不得不做两件事怎么办?一个紧迫的错误出现了,或者你的老板设定了一个新的优先级,或者你意识到如果你先做别的事情,你的工作会轻松得多,或者你只是分心了。如果你一直致力于掌握,他们必须纠结在一起,使一切更加复杂和容易出错。如果您在分支中工作,则可以在分支之间切换

    如果在做出六次承诺后你意识到这不是一个好主意怎么办?如果你一直致力于掌握,你必须恢复所有的变化,希望你得到所有的!如果在分支中工作,则删除该分支

    如果您使用的是审查流程,那么您通常会等待审查一组更改。能够开始下一项任务会很好。如果您一直在使用master,那么您必须在未查看的代码之上工作,这些代码可能会发生更改。如果审查发现问题怎么办?现在,您将第一个任务的修复与第二个任务的未完成工作混为一谈

    只有经过审核、测试和完成后,才能进入master。这确保master是一个稳定的平台,可以为您和项目中的其他所有人提供更多工作

    有关分支流程基础知识的更多详细信息,请参阅


    您的特定工作流有一个缺陷。拉完车后,你不需要再拉

    • 吉特分行新科
    • 吉特结帐新科
      • 这可以组合为
        git checkout-b new\u branch
    • 在我完成我在新科的工作后:git checkout master
    • git合并新分支
    • git推送到远程回购
    • 您的工作落后的消息,因为在我克隆回购协议后,其他人进行了更改
    如果有多人参与回购,那么在合并之前应该有一个审查步骤。这会让更多的人关注代码,让更多的人知道你在做什么,并防止人们偏离正轨

    在Github上,这些是

    合并是在“服务器”上完成的,因此您可以立即提取新的主服务器

    • git-pull;现在,我的本地主分支是最新的
    • git合并新分支
    额外的合并是一个重大错误。您的分支已在本地合并到主分支
    git pull
    不会消除这一点,它会将远程主机与本地主机合并。这包括合并的分支

    • git推送到远程回购
    • 当一切正常时,我可以删除我的本地新分支
    在该工作流中,由于没有审阅步骤,推送和拉取与分支/合并过程基本无关。你自己在做集成。您可以在合并后立即删除分支


    以下是solo的基本工作流程

    • 工作
    • 更新
    • 测试
    • 合并
    • 分享
    更详细地说

    • 工作。
      • git签出-b特性
      • 每做一件事都要做出小而专注的承诺
    • 更新
      • 只要你不想落后,就经常这样做
      • 更新主机
        • git签出主机
        • 吉特拉力
      • 更新功能
        • git签出特性
        • git合并主机
    • 试验
      • 你想测试多久就测试多久,可能比你想的要多
    • 合并
      • 功能是完整的、经过测试的、最新的
      • git签出主机
      • git合并功能
      • git分支-d特征
    • 分享。
      • git推送
    在把工作强加给别人之前,确保工作完全完成是件好事。只有在你的工作完成并且是最新的时候,你才会推


    这涵盖了基本知识。有许多方法可以简化和改进此工作流。即使在单独工作时,也要考虑使用Github拉动请求或在你使用的任何系统中的等价物。

    使用分支的主要原因是将单独的东西(考虑到票、想法、修正、改进)分开。当你考虑到给定的特征/修复/准备好时,你就合并成更有意义的分支(如开发、主等)。T