github - 如何在没有合并提交或使用 CLI 的情况下使 GitHub fork 保持最新?

标签 github github-for-windows github-desktop

为 repo 做出贡献的正常 GitHub 流程是创建上游的分支,克隆您进行更改的本地副本,然后推送回您的分支,然后创建 PR 以将您的更改合并到上游。

但是,如果在那之后上游发生了变化,你如何在不创建合并提交的情况下更新你的 fork(也不使用 git CLI)?

我已经知道如何以创建合并提交或依赖于 git 命令行界面的方式执行此操作。此问题专门针对仅使用 GitHub.com 网站或 GitHub Desktop 应用程序(无 CLI)。

由于这是一个非常常见的工作流程,似乎应该有一些使用 GitHub GUI 的简单方法来完成它。

重申一下:任何使用 CLI 或创建合并提交的答案(例如 this way )都不会回答这个问题,因为我正在明确寻找非 CLI 解决方案。

最佳答案

更新
注意:基于非 CLI 的方法可能会有所帮助:
Is there a way to make GitHub Desktop rebase a branch against master?

这里唯一的关键是做一个 rebase ,所以上面的答案应该会有所帮助。

CLI方式 (更容易使用 git ,因此默认情况下应该更全面)

您应该使用一些做法来避免这种情况。

  • 不要在你的 fork 中的 master 分支上工作。
  • $ git clone <your fork>
    $ git checkout -b feature_branch
    

    您可以在 feature_branch 中工作然后提出一个拉取请求。
  • 一旦您的更改合并到上游主服务器中,您就可以从上游拉到您的来源。由于上游的 master 会将您的提交整齐地放在它上面,因此不会有合并提交。
  • $ git checkout master
    $ git pull upstream master
    $ git push origin master
    
  • 在这种情况下,维护者与你在你的 fork 中的主服务器发生了分歧,也就是说,它不再是线性的,你需要拉一个新的副本。这应该不是问题,因为您的更改已经在上游。
  • 如果上游的主人在你做 PR 的时候已经前进了,那么你可以基于你 feature_branch .
  • $ git checkout master
    $ git pull upstream master
    $ git push origin master
    $ git checkout feature_branch
    $ git rebase master
    

    详细引用请引用本文档:Fork and pull request workflow

    关于github - 如何在没有合并提交或使用 CLI 的情况下使 GitHub fork 保持最新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56409392/

    相关文章:

    github - 通过 Octokit.net 获取 Git repo 子模块的目标哈希/SHA?

    php - 单独开发人员的 Git 工作流程(全部 git 新手)

    git - 回到 Github Desktop 中的上一个提交

    Github Desktop - 分支不删除

    github - 在没有蓝色图标的 gitlab 中注释多行?

    git - 在Docker容器上启动github

    Github 发布/标签未在本地显示?

    git-svn - 如何使用 "GitHub for Windows"克隆一个 Subversion 存储库?

    git - fatal error : Can't resolve host github. com

    git - VS 代码显示我的 "macbook"存储库中据称已更改的 +5000 个文件,我不知道这是怎么发生的