GitHub,Git,如何向上游存储库提交更改

时间:2010-02-04 11:13:24

标签: git github

我们已经在内部使用Git很长一段时间了,并且在我们的团队中有很好的工作流程。昨天我们想在GitHub上为一个项目提交一些错误修复。这对我们来说是新鲜事。所以这就是我们所做的:

  1. 克隆了他们的存储库
  2. 分叉上游
  3. 添加了我们的分叉作为远程
  4. 修复了主分支中的一些错误
  5. 将主人推到我们的远程叉子
  6. 发送拉取请求
  7. 他们撤消了这些变化
  8. git fetch origin
  9. 在主人:git merge origin/master
  10. 这是正确的做事方式吗?我们最终得到了一个额外的“Merge commit'gengen / master'”消息,其他开发人员似乎并没有这样做。同样在日志中我们可以看到两次提交。

    一切似乎都没问题,但感觉不对。有没有好的GitHub工作流程页面? Git帮助页似乎错过了如何进行本地更改的部分。

    我想如果我们在将更改推送到fork之后回滚我们的主分支,我们就不会遇到这个问题,但这也感觉不对。

1 个答案:

答案 0 :(得分:8)

这是一种方式 我更喜欢克隆我的 GitHub repo(一个分支GitHub项目“hisRepo”),而不是直接克隆现有的“hisRepo”。

我建议在“hisRepo”之上重新设置主分支,而不是合并 我相信这会避免在日志中看到你的提交两次,并且会避免额外的“合并”提交消息。

  1. 在myRepo中分享他们的回复
  2. 克隆myRepo
  3. 将“hisRepo”添加为远程
  4. 修复了主分支中的一些错误
  5. 将主人推到我们的远程叉子“myRepo”
  6. 发送拉取请求
  7. 他们撤消了这些变化
  8. git fetch theirRepo
  9. 在主人:git rebase theirRepo/master
  10. 另见这个SO问题中讨论的各种类似策略(针对另一个案例,但可以给你一些想法):How do I re-play my commits of a local git repo, on top of a project I forked on github.com?