单个开发人员的Github工作流程

时间:2012-07-29 11:26:21

标签: git github workflow github-for-windows

我想对我的git工作流程有一些反馈,因为这是我第一次使用它,尽管阅读了各种文章和Stack Overflow问题,但我不确定我的流程是否正确。这是我当前的工作流程(请注意,我正在使用Github for Windows应用程序进行所有git交互):

  1. 决定我将要实施的下一个功能。
  2. 创建一个具有适当描述性名称的分支。我这样做是通过单击Github for Windows中的分支按钮并键入新名称。
  3. 写一些代码。
  4. 将这些更改提交给我的新分支。
  5. 再写一些代码。
  6. 将这些更改提交给我的新分支。
  7. 我已经完成了该功能的实现,因此我想将我的更改合并回主分支。所以我点击分支标题下面的“管理”按钮。
  8. 将新分支合并到主分支。
  9. 删除新分支。
  10. 我很满意直到第7步的过程,此时我有点困惑。我认为我的困惑在于我正在尝试使用Github for Windows应用程序而不是使用命令行。该应用程序确实使事情变得更容易,但我对我提到的一些命令/指令与您在应用程序中将采取的操作之间的理解存在一些脱节。

    让我问一些具体的问题:

    1. 我的工作流程是否真的正确?如果没有,它有什么问题,我该如何改进呢?
    2. 我应该将我的更改“发布”到新分支吗?我的理解是,这相当于在命令行执行git push。真的吗?如果是这样的话,我想我只想在完成功能实现或处于体面状态时才这样做?
    3. 当我将分支合并到主分支中时是否应该删除分支,还是应该永久保留它?
    4. 完成合并后是否需要发布主分支?这是隐式的吗?
    5. 我有时无法执行合并并收到此错误消息:
        

      无法合并

           

      无法将'test'合并为'master'。您可能需要打开shell并调试此repo的状态。

    6. 如果之前发生这种情况,我可以更改为主分支并将新分支合并到主分支中,但不再有效。无论我在哪个分支,我都无法合并这两个分支。两者都是同步的,我已经发布了测试分支的所有更改。我应该在shell中输入什么来找出为什么我不能合并分支?

      作为参考,这些是促使我的过程的主要链接:

      1. Scott Chacon on the workflow at Gitub
      2. Git workflow for a single developer on a local repository
      3. Git workflow for a single user

1 个答案:

答案 0 :(得分:4)

您所描述的内容听起来像是一个常见的分支工作流程,即使对于同一代码库中的多个开发人员也能很好地工作。它完全由git flow覆盖,它是git命令行的扩展,用于自动执行某些步骤。值得一试。

我不是git UI工具的忠实粉丝。我大部分时间都在使用命令行。所以我对GitHub for Windows没有经验。但我打赌你的问题会因为你的合并而不再是快进而发生。这将需要手动合并步骤(afaik)未被工具覆盖。

没有充分的理由在将它们合并到您的上游之后保持分支。但一个是跟踪提交进入某个功能的内容。如果您决定保留它们,我建议发布分支机构。您不依赖于本地计算机上的代码。保持分支不会使你的存储库变得更大,但会污染视线。大多数情况下,提交在您的上游分支中都存在。

合并后你必须发布(推送)你的主分支。

为了熟悉git命令行工具,我建议从GitHub人员的Introduction to Git and GitHub开始,并按照他们的链接参考了解更多详情。

希望有所帮助