我可以编辑两个文件,然后使用基于GitHub Web的编辑器提交一个文件吗?


76

GitHub具有基于Web的文件编辑功能。但是,似乎在编辑一个文件后,我必须先提交对此文件的更改,然后再继续。有没有一种方法可以编辑两个或多个文件,然后对它们的所有更改进行一次提交?

我认为这样做会更好,因为太多不必要的提交很烦人。


如果GitHub要成为主流,他们最好为不了解bash的人在网络上实现整个Git接口。
Ciro Santilli郝海东冠状病六四事件法轮功2014年

Answers:


56

有一个基于Web的解决方法:

  1. 创建一个临时分支,切换到该分支;
  2. 编辑多个文件,分别提交每个文件;
  3. 提出拉取请求;
  4. 在“合并”拉取请求按钮下,选择“压入并合并”(如果仓库允许),然后确认合并;
  5. 删除临时分支。

我在不想安装git的PC上使用此方法。


19
效果很好。重要的一点是,当您验证并合并拉取请求时,请确保选择Confirm Squash and Merge,而不是Confirm Merge(默认)。help.github.com/articles/about-pull-request-merge-squashing
Mar Cnu

您可以继续执行第3步和第4步吗?我想在回购的分支中编辑2个文件,然后通过两次编辑仅提交一次提交PR。我该如何提出拉取请求(针对我自己的叉子?)并将其合并?我没有对原始存储库的写权限。
Dan Dascalescu '16

2
1.创建您的fork和临时分支。2.在临时分支上编辑文件。3.1。壁球提交到您的master分支。3.1.1。在临时分支上,点击“创建请求请求”,并确保“ base”是您的主服务器。创建“本地”提取请求。4.点击“合并拉取请求”并填写提交消息。点击绿色按钮“确认南瓜并合并”。现在,您只需一次提交,即可在“主服务器”上添加2个已编辑的文件。5.要将拉取请求传播到源,请创建拉取请求,并将原始存储库指定为“ base”。创建请求请求后,作者将能够查看和合并您的更改。
维克多·伊斯托明

但是,我认为您不需要将其提交给另一个存储库的临时分支。只需根据需要更改叉子中的文件,然后向原始存储库填写拉取请求即可。如果需要,原始维护者可以合并您的拉取请求和压缩提交。
维克多·伊斯托明

1
问题被问到“有没有一种方法我可以编辑两个或多个文件然后进行一次提交”-答案将导致多次提交以及合并提交。压缩而不是合并可以起作用,但是在从没有访问权限的存储库发出的请求中编辑文件时不可用。
fwyzard

5

是的,当您已经在GitHub的Web浏览器视图中编辑了第一个文件时,就有一种方法可以编辑2个文件。它基于此处的说明:

/webapps/95940/how-can-i-change-multiple-files-and-submit-them-in-one-pull-request-on-github

摘要和阐明的步骤是:

  1. 通过单击其他用户存储库中的“编辑”图标来编辑您的第一个文件。在第一次提交中保存此编辑。GitHub将自动为您创建一个新的分支/分支,例如“ patch-1”。
  2. 暂时不要创建请求请求。
  3. [这部分是最困难的,因为它并不明显]转到位于您的个人资料中的存储库列表,位于github.com ➔ click icon at top-right ➔ Your Repositories。然后转到刚刚创建的分叉存储库,并切换到“ patch-1”分支。
  4. 继续更改另一个文件,并将其提交到“ patch-1”分支。完成后,单击顶部附近的“拉取请求”选项卡,然后单击Compare & Pull RequestCreate Pull Request。您应该在此Pull Request中看到您的2次提交。
  5. 如果没有看到“创建请求请求”按钮,请在网络浏览器中打开一个如下所示的URL: https://github.com/TargetPerson/TargetGitRepo/compare/master...MyGithubUsername:patch-1
  6. 这将显示一个视图,将您所做的更改与其他用户存储库中的原始目标分支进行比较。然后按下Create Pull Request按钮。

在第4点,我找到了两个“拉取请求”按钮,我必须单击下部的按钮,然后单击“新拉取请求”以进入比较页面。然后,我选择“ patch-1”分支并继续。
mmj

1

GitHub Web Flow每次提交支持一个文件。要将多个文件添加到单个提交中,您将需要在本地克隆存储库,编辑文件,然后提交并推送。

命令行如下所示:

  1. cd 到目录

  2. 使用以下命令暂存所有已修改的文件

    git add <file-1> <file-2> <etc>
    
  3. 提交

    git commit -m'<your-message>
    

    或者如果您想启动外部编辑器

    git commit
    
  4. 发送历史记录/提交

    git push
    

14
在将存储库克隆到本地后,我已经学会了如何提交和推送。但是,正如问题中所述,我担心基于Web的编辑器,因为有时我只想在Google Chrome中执行操作。如果它们在GitHub Web Flow中支持多个文件,那就太好了。
shengbinmeng

这不是我一直在寻找的东西,但是至少答案很明确:“ GitHub Web Flow每次提交支持一个文件。”
fwyzard

1

@VictorIstomin和@MarCnu所说的附录:

如果要编辑多个文件名而不是这些文件的内容,只需遵循Victor列出的说明,而不必“确认Squash and Merge”。您可以直接点击“确认合并”(这是唯一的选择,因为您实际上并未编辑文件内容。

这个问题已经很好地回答了,只是想为将来可能要更改文件名的查看者澄清这一点,这是我在GitHub中通常要做的事情。


0

假设有问题的仓库是https://github.com/repoUsername/repoName

  1. 通过单击Fork回购页面顶部的按钮来分叉存储库。

在此处输入图片说明

  1. 通过仓库中基于Web的文件编辑器根据需要编辑任意数量的文件。分别提交每个文件。

  2. 转到https://github.com/repoUsername/repoName/pulls并按绿色大New pull request按钮。

在此处输入图片说明

  1. 在下一页上,单击compare across forks链接。

在此处输入图片说明

  1. 然后在Choose a Head Repository字段中选择您的叉子

在此处输入图片说明

  1. Create pull request按钮将会出现。点击它。

在此处输入图片说明

  1. 输入请求请求的标题和描述,然后Create pull request再次单击按钮。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.