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

问题描述 投票:0回答:3

(100%浏览器内解决方案:收到别人的拉取请求,如何编辑它然后直接在github上合并?


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

myproject

名为

userblah
的用户提出了 pull-request

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

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

然后我就可以访问我的文件夹中的his版本了,这样就可以了。

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

然后我想再次切换到 my

master
分支,但是我错误说我无法切换到 master,因为在当前分支
userblah-test
上进行了未提交的修改。

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

我的意思是:

  1. 将用户的代码拉取到新分支中
  2. 根据我的口味稍微修改一下他的代码
  3. 将其推入我的
    master
    ,这样用户名
    userblah
    将被注册为文件的贡献者
git github pull-request
3个回答
4
投票

我认为您可能希望执行“合并”,这将从一个分支中进行更改,并将它们与另一个分支上的更改“合并”(组合)。 假设您想更改建议的代码:

    git checkout -b userblah-test
  1. (查看名为 userblah-test 的新分支)
  2. git pull https://github.com/userblah/myproject.git
  3. (从 userblah 中提取建议的更改)
    做出改变
  4. git add .
  5. (. 添加所有修改的文件)
  6. git commit
  7. (提交更改 - 请务必注意,您仅将更改提交到当前分支,即
    userblah-test
  8. git checkout master
  9. (合并前检查主分支)
  10. git merge userblah-test
  11. (将
    userblah-test
    上所做的所有更改与当前分支合并)
    
    
    
但是

,如果拉取请求是通过 GitHub 提交的,我建议您在拉取请求评论中告知原作者您想要进行的更改。作者应该愿意自己进行这些更改并将它们添加到拉取请求中。然后,您可以使用 GitHub 自己的 Web 界面合并他的 PR - 请参阅here了解更多信息。 拉取请求旨在促进围绕代码的讨论,如果您对此人提出的更改不是 100% 满意 - 告诉他们!


0
投票
userblah

的 Pull 请求的方法:


    git checkout -b userblah-test master
  1. (在此处和下一行添加了
    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. 
    
    
  10. 唯一的问题是,然后
userblah

并没有出现在 Github 的贡献者列表中,就像

userblah
没有做任何事情一样...
    


0
投票
PR_NUMBER

、贡献者 GitHub 名称和贡献的分支,并在标题后的行尾检查目的地和贡献在链接中。 “...从

DEST_BRANCH
CONTRIBUTOR
CONTRIB_BRANCH
”。最后,请注意贡献分叉存储库,通过单击链接即可看到,例如
https://github.com/CONTRIBUTOR/CONTRIB_REPO.git
。 然后使用以下命令:
# Get the PR
git clone https://github.com/ORGANIZATION/REPO.git
git checkout -b CONTRIBUTOR-CONTRIB_BRANCH DEST_BRANCH
git pull https://github.com/CONTRIBUTOR/CONTRIB_REPO.git CONTRIB_BRANCH
# Make all your changes, also with multiple commits, e.g.
git add .
git commit -m 'All my changes'
git push https://github.com/CONTRIBUTOR/CONTRIB_REPO.git CONTRIBUTOR-CONTRIB_BRANCH:CONTRIB_BRANCH

这要求您拥有贡献者分支的写入权限(如果您是审阅者,则默认),并且将自动更新您可以通过 Web 或 
GitHub CLI

合并的 PR。该代码使用 HTTPS URL,如果您使用 SSH,请更改它们。 注释

在贡献代码时,建议使用分支中的功能分支,而不是主/主分支,以允许多次贡献并避免混淆。 上面的代码修改了贡献者的分支,正如@rmorrin回答中所述,审查并要求贡献者进行更改更接近PR精神。另一种方法是从贡献开始,进行更改,但将它们保存在新分支中。这需要一个新的 PR:

git clone https://github.com/ORGANIZATION/REPO.git git fetch origin pull/PR_NUMBER/head:pr-PR_NUMBER git checkout pr-PR_NUMBER # Make all your changes, also with multiple commits, e.g. git add . git commit -m 'All my changes' # Push your changes git push origin pr-PR_NUMBER

从 pr-PR_NUMBER 分支创建新 PR(如果需要,可以在您的分叉存储库上),复制原始 PR 讨论中的信息,合并新 PR,并关闭引用新 PR 的原始 PR。所有这些解决方案都保留了贡献者的承诺和归属。

GitHub CLI

如果您有

GitHub CLI

,许多命令都可以简化: # Get the PR gh repo clone ORGANIZATION/REPO gh pr checkout PR_NUMBER # Make all your changes, also with multiple commits, e.g. git add . git commit -m 'All my changes' # Push your changes gh pr push

© www.soinside.com 2019 - 2024. All rights reserved.