2016-12-27 50 views
0

当涉及多个人时,我经常在使用git时感到困惑。使用它为我自己的项目,我从来没有使用高级功能,只推送到GitHub公开分享。我不确定如何解决在社区中工作的问题。Git Group Workflow

  • 我参加的项目,并在GitHub上创建自己的叉子
  • 我选择的问题解决和创建一个分支“问题#94”
  • 我的代码并提交,直到我很高兴
  • 创建一个最终提交,对什么是解决了注释,使用Github上refernce标签引用问题(修正了#94,#关闭94等)

  • 和衍合壁球我的分支,以保持项目的清洁

  • 向项目负责人发出拉请求

这是我不确定的事情。拉取请求可能需要几天才能合并。如果我想继续发展,我该去哪里?

我应该退出我的分支并为新问题打开一个新分支吗?

如果我正在处理某个问题,并且主分支有重要更新,该怎么办?我是否会拉新的主人,并将这些更改与新主人的新分支区分开来?

一旦我的拉请求被接受,我可以拉新的主人并放弃我的本地分支,但同步跨两个回购所有这些令人困惑。

什么是普遍接受的工作流程,是否有我可以钉在我的cheatsheet的写作?

回答

1

您发出拉请求的过程是正确的。对于您的问题:

  1. 后您发出拉入请求合并问题#94的掌握和它没有批准,并且希望继续在当地的问题#94分支发展。所以您可以自由地开发它,当您更新一些新的东西时,您可以再次推送分支,它会自动更新之前发出的拉取请求。当项目负责人查看您的请求时,他会发现您推送的第一个和第二个更改。
  2. 如果是相关的错误,您可以开发第#94分支。否则,你应该开发一个新的分支。
  3. 在您的本地仓库中,您有一个远程货叉回购货源,您还应该添加远程仓库本身以供您比较是否已更新主分支。如果主分支已更新,则只需将其提交到本地主分支,然后重新绑定其顶部的工作分支。步骤如下:

git remote add origin2 <URL for the repo>. git fetch origin2 git diff master..origin2/master

如果有具有输出,这意味着在主分支已经更新,所以你应该做的:

git checkout master 
git pull origin2 master 
git checkout issue#x 
git rebase master 
  • 常见的工作流程是确保在将新创建的问题#x分支推送到分叉回购之前,您将通过git fetch origin2 mastergit diff master..origin2/master显示检查分叉回购是否最新。如果没有输出(本地主分支是最新的),所以你可以推动你的问题#x分支并发出拉请求。
  • +0

    感谢您的明确答案。我使用rebase来压扁,但是在阅读手册页时,它明确规定了快速转发分支点。现在我只需要记住将我的分支推送到远程,所以我停止创建僵尸大声笑。 – uMinded