假设我在GitHub上有一个存储库myproject
。
名为userblah
的用户建议提取请求。
我尝试了以下内容,以测试他的修改:
git checkout -b userblah-test
git pull https://github.com/userblah/myproject.git
然后我可以在我的文件夹中访问他的版本,这没关系。
然后我决定在他的代码中修改一些东西:我在文本编辑器中打开代码,做了一些修改并保存。
然后我想再次切换到我的 master
分支,但是我错误地说我无法切换到master,因为在当前分支上已经完成了未提交的修改{{ 1}}。
正确处理拉取请求的正确命令是什么?
我的意思是:
userblah-test
中推送此内容,以便将用户名master
注册为文件的撰稿人答案 0 :(得分:3)
我认为您可能希望执行合并,这将从一个分支进行更改,并且'合并' (结合)他们与另一个人的变化。
假设您要对建议的代码进行更改:
git checkout -b userblah-test
(检出名为userblah-test的新分支)git pull https://github.com/userblah/myproject.git
(从userblah获取建议的更改)git add .
(。添加所有已修改的文件)git commit
(提交更改 - 请务必注意您仅对当前分支进行更改,即userblah-test
)git checkout master
(在合并前检查主分支)git merge userblah-test
(将userblah-test
上的所有更改与当前分支合并)但是,如果拉取请求已通过GitHub提交,我建议您通知原作者您想要在拉取请求评论中进行的更改。作者应该愿意自己进行这些更改并将它们添加到pull请求中。然后,您可以使用GitHub自己的网络界面合并他的PR - 有关详细信息,请参阅here。
拉请求旨在促进围绕代码的讨论,如果您对此人提出的更改不满意,请告诉他们!
答案 1 :(得分:0)
对@ rmorrin的回答进行了轻微修改,以下是我尝试处理userblah
的拉取请求的方法:
git checkout -b userblah-test master
(在此处和下一行添加master
)git pull https://github.com/userblah/myproject.git master
git add .
git commit -m "test"
git checkout master
git merge userblah-test
git push
唯一的问题是,然后userblah
没有出现在Github的贡献者列表中,它就像userblah
没有做过任何事情......