15

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

  1. 决定我要实现的下一个特性是什么。
  2. 为该功能创建一个具有适当描述性名称的分支。我通过单击 Github for Windows 中的分支按钮并输入一个新名称来完成此操作。
  3. 写一些代码。
  4. 将这些更改提交到我的新分支。
  5. 再写一些代码。
  6. 将这些更改提交到我的新分支。
  7. 我已经完成了该功能的实现,所以我想将我的更改合并回主分支。所以我点击分支标题下方的“管理”按钮。
  8. 将新分支合并到主分支。
  9. 删除新分支。

我对第 7 步之前的过程非常满意,此时我有点困惑。我认为我的困惑在于我试图使用 Github for Windows 应用程序而不是使用命令行。该应用程序似乎确实让事情变得更容易,但我看到的一些命令/指令与您在应用程序中采取的操作之间存在一些脱节。

让我问一些具体的问题:

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

    无法合并

    无法将“测试”合并到“主”。您可能需要打开一个 shell 并调试此 repo 的状态。

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

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

  1. Scott Chacon 谈 Gitub 的工作流程
  2. 本地存储库上单个开发人员的 Git 工作流
  3. 单个用户的 Git 工作流
4

1 回答 1

4

您所描述的听起来像是一个通用的分支工作流程,即使对于同一代码库上的多个开发人员也能很好地工作。git flow几乎完全涵盖了它,它是 git 命令行的扩展,用于自动化某些步骤。值得一试。

我不是 git 的 UI 工具的忠实粉丝。我大部分时间都在使用命令行。所以我没有使用 GitHub for Windows 的经验。但我敢打赌,您的问题出现是因为您的合并不再是快进了。这将需要工具未涵盖的手动合并步骤(afaik)。

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

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

为了熟悉 git 命令行工具,我建议从GitHub 人员的Git 和 GitHub 简介开始,然后按照他们的链接参考了解更多详细信息。

希望有帮助

于 2012-07-29T12:42:05.663 回答