83

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

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

4

6 回答 6

60

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

  1. 创建一个临时分支,切换到它;
  2. 编辑多个文件,分别提交每个文件;
  3. 提出拉取请求;
  4. Merge pull request按钮下,选择Squash and merge(如果 repo 允许),然后确认合并;
  5. 删除临时分支。

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

于 2014-09-26T16:04:16.537 回答
6

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

https://webapps.stackexchange.com/questions/95940/how-can-i-change-multiple-files-and-submit-them-in-one-pull-request-on-github

总结和澄清的步骤是:

  1. 通过单击另一个用户存储库中的编辑图标来编辑您的第一个文件。在您的第一次提交中保存此编辑。GitHub 会自动为你创建一个新的分支/fork,比如“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按钮。
于 2019-06-30T19:36:15.627 回答
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
    
于 2013-08-25T17:32:41.133 回答
1

@VictorIstomin和 @MarCnu 所说的附录:

如果您想编辑多个文件名而不是这些文件的内容,只需按照 Victor 布置的说明进行操作,但您不必“确认压缩和合并”。您可以点击“确认合并”(这应该是唯一的选择,因为您实际上并没有编辑文件内容。

这个问题已经得到了很好的回答,只是想为任何可能正在更改文件名的未来观众澄清这一点,这是我在 GitHub 中经常做的事情。

于 2017-06-15T01:13:18.900 回答
0

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

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

在此处输入图像描述

  1. 在您的 repo 分支中通过基于 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再次单击按钮。

在此处输入图像描述

于 2020-05-23T16:29:34.650 回答
0

如果您不希望创建临时分支并合并更改(这会导致存储库中出现一堆仅用于合并提交的拉取请求),您可以上传多个(修改过的)文件,GitHub 将创建一个与他们一起承诺。

请注意,上传文件时,文件将上传到 GitHub 上可见的当前文件夹。

这种方法的缺点是,当您需要修改不同目录中的文件时,您需要上传所有项目文件(这会很慢)或创建项目的骨架目录并将修改后的文件放在那里(以便 GitHub 修改正确的文件而不创建新文件)。

使用此方法时要小心,因为 GitHub 在您提交文件之前不会向您显示您的更改。

于 2021-05-27T12:03:04.490 回答