如何处理审查拉取请求,修改代码和合并?

时间:2014-12-08 09:52:46

标签: git github

假设我在GitHub上有一个存储库myproject

名为userblah的用户建议提取请求

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

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

然后我可以在我的文件夹中访问他的版本,这没关系。

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

然后我想再次切换到我的 master分支,但是我错误地说我无法切换到master,因为在当前分支上已经完成了未提交的修改{{ 1}}。

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

我的意思是:

  1. 将用户代码拉入新分支
  2. 根据我的口味修改他的代码
  3. 在我的userblah-test中推送此内容,以便将用户名master注册为文件的撰稿人

2 个答案:

答案 0 :(得分:3)

我认为您可能希望执行合并,这将从一个分支进行更改,并且'合并' (结合)他们与另一个人的变化。

假设您要对建议的代码进行更改:

  1. git checkout -b userblah-test(检出名为userblah-test的新分支)
  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上的所有更改与当前分支合并)
  8. 但是,如果拉取请求已通过GitHub提交,我建议您通知原作者您想要在拉取请求评论中进行的更改。作者应该愿意自己进行这些更改并将它们添加到pull请求中。然后,您可以使用GitHub自己的网络界面合并他的PR - 有关详细信息,请参阅here

    拉请求旨在促进围绕代码的讨论,如果您对此人提出的更改不满意,请告诉他们!

答案 1 :(得分:0)

对@ rmorrin的回答进行了轻微修改,以下是我尝试处理userblah的拉取请求的方法:

  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
  9. 唯一的问题是,然后userblah没有出现在Github的贡献者列表中,它就像userblah没有做过任何事情......