Git 与 Remote Master merge

标签 git github merge

我为许多开源项目做出了贡献。通常,由于外部贡献者对他们贡献的存储库没有写入权限,因此工作流程如下:

  1. fork 存储库并克隆一个私有(private)副本
  2. git checkout -b feature-branch 在 fork 的 repo 上
  3. 将提交推送到该分支
  4. 打开 pull 请求以将 local:feature-branch merge 到 remote:master

这一切都很好,但我最近遇到了一个问题,当时存在 merge 冲突,迫使我将 master merge 到我的功能分支中,以便可以接受 pull 请求。

命令通常是:

git checkout master
git pull origin master
git checkout feature-branch
git merge master

但是当我完成这些步骤时,git 显示 Already up-to-date.,这是有道理的。因为我在 repo 的 fork 版本中,所以我的副本将永远无法获得对 master 的最近远程更改。

所以看起来因为我正在处理无法 merge 的 fork 副本,所以我的 PR 永远无法 merge 。

我怎样才能解决他的问题?

非常感谢您的帮助!

最佳答案

The command would typically be:

git checkout master
git pull origin master
git checkout feature-branch
git merge master

嗯,问题出在第二行。

git pull origin master

origin Remote 设置为您的 fork 。如果你运行类似的东西

git remote show origin

有点像

* remote origin
  Fetch URL: https://github.com/YOUR-NAME/repo.git
  Push  URL: https://github.com/YOUR-NAME/repo.git
  HEAD branch: master

会出现。

话虽如此,您必须从 fork Remote 中 pull 出。运行

git remote show

这将显示所有 Remote 。

check out 到你的master分支然后运行

git pull <the-remote-that-isnt-origin> master

哪里<the-remote-that-isnt-origin>是不是显示的 Remote origin当你运行 git remote show .

现在,大多数开源项目不喜欢 merge 提交,所以我建议 rebasing .

git checkout your-branch
git rebase master

关于Git 与 Remote Master merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36435368/

相关文章:

Git:将存储库更新到特定版本

javascript - 如何 gitignore 快照文件夹?

git - 使用 Visual Studio 2019 将更改推送到子存储库

linux - 在 CentOS 7 中启用 EPEL 存储库

git - 我可以将另一个人的 repo 两次 fork 到我自己的帐户中吗?

android - 如何在 Android 应用程序中使用来自 GitHub 的库

c# - ffmpeg 使用 c# avformat_open 运行失败

git - 克隆后记住多个 git 远程 url

svn - 我可以 svn merge 而不总是指定第一个修订版吗?

css - 使用导入合并 CSS 文件