2014-12-08 49 views
3

比方说,我在GitHub上有一个存储库myproject如何处理查看拉取请求,修改代码和合并?

名为userblah的用户提出了拉取请求

我尝试以下,以测试他的修改:

git checkout -b userblah-test  
git pull https://github.com/userblah/myproject.git 

然后,我曾获得版本我的文件夹中,这是确定的。

然后我决定修改他的代码中的一些东西:我在文本编辑器中打开了代码,做了一些修改并保存。

然后,我想再次切换到master分支,但我一个错误说,由于未提交的修改已经在当前分支userblah-test做我不能切换到主。

什么正确的命令来正确处理拉请求?

我的意思是:

  1. 的用户代码拉入一个新的分支
  2. 根据我的口味
  3. 推这在我的master,这样修改他的代码一点点的用户名userblah将被注册为文件的贡献者
+0

你发后你在新分支上的变化是你犯下的吗?如果没有,这就是为什么你得到关于不能检出主的错误。 – rmorrin 2014-12-08 10:02:44

回答

3

我认为你可能想要执行合并,它将从一个分支中进行更改,并将它们与另一个分支上的更改“合并”(合并)。

假设你想更改建议代码:

  1. git checkout -b userblah-test(检查出一个新的分支命名为userblah测试)
  2. git pull https://github.com/userblah/myproject.git(拉从userblah建议修改)
  3. 让你改变
  4. git add .(在将所有修改过的文件。)
  5. git commit(提交更改 - 要注意个很重要在你合并之前)提交更改当前分支而已,即userblah-test
  6. git checkout master(检查出的主分支
  7. git merge userblah-test(合并)

然而,随着当前分支上userblah-test所做的所有更改,如果通过GitHub提交了拉取请求,我建议您通知原作者关于您希望在拉取请求注释中进行的更改。作者应该愿意自己做出这些更改并将其添加到请求中。然后,您可以使用GitHub自己的网络界面合并他的公关 - 请参阅here获取更多信息。

如果你对这个人提出的改变不是100%满意,那么拉取请求的目的是促进围绕代码的讨论 - 告诉他们!

+0

你基本上已经明白了: 签出一个新的本地分支=>从拉取请求拉取更改=>复查=>如果高兴,签出master =>合并新的本地分支。你需要知道的一切应该在GitHub的帮助部分[这里](https://help.github.com/categories/collaborating/)中介绍。特别是,请务必阅读“在本地签出请求”。 – rmorrin 2014-12-08 10:19:09

+0

我不确定的部分:“评论”:在这一部分,我想自己修改推荐请求的代码。该怎么办?打开编辑器,保存文本文件。接着?切换前提交?那么当结账再次掌握时怎么办? (你能否将这些步骤粘贴到你的答案中,以供将来参考)?再次感谢@ rmorrin! – Basj 2014-12-08 10:21:07

+1

@Basj没问题,我已经相应地更新了我的答案!值得一提的是,这并不是通常的拉取请求的做法 - 如果您对某人的建议更改不满意,您通常会讨论这一点,并让作者在合并PR之前添加更改,而不是自己更改其代码。这就是为什么所有的pull请求都有注释线程的原因! :-) – rmorrin 2014-12-08 10:31:54

0

轻微修改@ rmorrin的答案,这里是我如何试图处理来自userblah pull请求:

  1. git checkout -b userblah-test master(添加master这里和下一行)
  2. git pull https://github.com/userblah/myproject.git master
  3. 进行更改
  4. git add .
  5. git commit -m "test"
  6. git checkout master
  7. git merge userblah-test
  8. git push

唯一的问题是,那么userblah没有出现在GitHub的贡献者列表,它就像userblah什么也没做......