如何合并 2 github 存储库来触发拉取请求?
How merge 2 github repository to trigger a pullrequest?
我确定有大量的文档,但对我来说似乎没有什么是清楚的。
我想为开源项目做贡献,第一次做真正的 PR。 (迟到总比不到好)。
为了简单起见,我只想接受某人在 github fork 上所做的工作(但没有推回 master),做一些小的更新,然后尝试做一个 PR到原始存储库
主仓库是 (R1):
分叉和更新的回购是(R2):(注意:在特定分支中)
我在我的帐户上分叉了 ageneau 回购协议
我的意图是:
在我的 github 帐户上对 R2 进行分叉 = 我没有成功。它
总是在没有有趣分支的情况下给我 R1。该怎么办 ?
事实上,我已经添加了 R1 Fork。所以我删除了 R1 分叉并成功地在我的 Github
上分叉了 R2
然后获取本地仓库:
git clone https://github.com/afaucogney/loopback-sdk-android.git
添加原点
git init
git remote add origin https://github.com/afaucogney/loopback-sdk-android.git
添加上游(Strongloop版本)
git remote add origin https://github.com/strongloop/loopback-sdk-android.git
创建本地分支
cd loopback-sdk-android
git branch firstpr
git checkout firstpr
那我想怎么办
git rebase origin upstream...但没有发生任何有趣的事情。
请指教流程和git命令。
让我看看我是否理解正确。您是否尝试过分叉 R2,首先删除您不再需要的先前分叉?
编辑:
这里的问题是你分叉了两个 repos,其中只需要第二个,因为那个包含你需要的分支。
此时你有两个选择:
1.- 删除您在 github 帐户上所做的分叉,然后再次分叉 R2。
2.- 将 R2 添加为远程并创建 git fetch R2
以获取仅在 R2 上的那些分支。
让我们看一个非常详细的工作:
通过单击 "Fork" 按钮在 Github 提供解决方案的回购上进行分叉:
所以你在你的 Github(这里称为 R3)帐户中得到一个分支,如:
在 Github 中,做一个 Pull Request:
其中:
- 基础回购是 MilleZimTech fix_flatten 分支(有解决方案的分支)
- 比较仓库是 Strongloop (R1) 主分支
就像那样(自 Ageneau 分叉以来所有的提交都由 Strongloop 完成):
点击"Create Pull Request":
PR无法自动合并:
在本地计算机上克隆分支(注意,该过程与 Github 提出的过程不同)。使用 --branch <branch-name>
克隆特定分支
git clone https://github.com/MilleZimTech/loopback-sdk-android.git --branch fix_flatten
cd loopback-sdk-android
git branch
您应该看到 'fix_flatten' 分支
创建一个包含主仓库的新分支:
git checkout -b strongloop-master fix_flatten
git pull https://github.com/strongloop/loopback-sdk-android.git master
以防冲突。
git status
告诉你有没有被修改的文件。
git add .
添加新文件。
git commit -am"merge fix_flatten master"
提交更改。
再次 git pull https://github.com/strongloop/loopback-sdk-android.git master
切换fix_flatten
分支
git checkout fix_flatten
合并两个分支而不进行 FastForward 合并
git merge --no-ff strongloop-master
你应该看到:
推回到 Github 仓库
git push origin fix_flatten
如果您使用 git:// 而不是 https:// 克隆 repo,您需要:
git remote set-url --push origin https://github.com/MilleZimTech/loopback-sdk-android.git
,使用原始存储库的 --push' because without, only the
fetch` 参数将被更新。
又一次git push origin fix_flatten
然后在Github上看到变化喜欢
由于这是最新的 fix_flatten 分支,请在我的仓库的 master 分支上执行拉取请求。
Select fix_flatten
分支,然后我们可以看到:
点击 PullRequest
- 基地
master
分支
- 比较
fix_flatten
分支
合并并确认 PullRequest
然后你就可以安全的PullRequest Strongloop repo
结束:
Ouuuf...这很难找到和描述。但我认为这可以帮助那些不太了解的人git。尽管如此,我还是不明白为什么会如此复杂和漫长。
有没有人有更直接的方法来完成这种日常任务?
我确定有大量的文档,但对我来说似乎没有什么是清楚的。
我想为开源项目做贡献,第一次做真正的 PR。 (迟到总比不到好)。
为了简单起见,我只想接受某人在 github fork 上所做的工作(但没有推回 master),做一些小的更新,然后尝试做一个 PR到原始存储库
主仓库是 (R1):
分叉和更新的回购是(R2):(注意:在特定分支中)
我在我的帐户上分叉了 ageneau 回购协议
我的意图是:
在我的 github 帐户上对 R2 进行分叉 = 我没有成功。它 总是在没有有趣分支的情况下给我 R1。该怎么办 ? 事实上,我已经添加了 R1 Fork。所以我删除了 R1 分叉并成功地在我的 Github
上分叉了 R2
然后获取本地仓库:
git clone https://github.com/afaucogney/loopback-sdk-android.git
添加原点
git init
git remote add origin https://github.com/afaucogney/loopback-sdk-android.git
添加上游(Strongloop版本)
git remote add origin https://github.com/strongloop/loopback-sdk-android.git
创建本地分支
cd loopback-sdk-android
git branch firstpr
git checkout firstpr
那我想怎么办
git rebase origin upstream...但没有发生任何有趣的事情。
请指教流程和git命令。
让我看看我是否理解正确。您是否尝试过分叉 R2,首先删除您不再需要的先前分叉?
编辑: 这里的问题是你分叉了两个 repos,其中只需要第二个,因为那个包含你需要的分支。
此时你有两个选择:
1.- 删除您在 github 帐户上所做的分叉,然后再次分叉 R2。
2.- 将 R2 添加为远程并创建 git fetch R2
以获取仅在 R2 上的那些分支。
让我们看一个非常详细的工作:
通过单击 "Fork" 按钮在 Github 提供解决方案的回购上进行分叉:
所以你在你的 Github(这里称为 R3)帐户中得到一个分支,如:
在 Github 中,做一个 Pull Request:
其中:
- 基础回购是 MilleZimTech fix_flatten 分支(有解决方案的分支)
- 比较仓库是 Strongloop (R1) 主分支
就像那样(自 Ageneau 分叉以来所有的提交都由 Strongloop 完成):
点击"Create Pull Request":
PR无法自动合并:
在本地计算机上克隆分支(注意,该过程与 Github 提出的过程不同)。使用
--branch <branch-name>
克隆特定分支git clone https://github.com/MilleZimTech/loopback-sdk-android.git --branch fix_flatten
cd loopback-sdk-android
git branch
您应该看到 'fix_flatten' 分支
创建一个包含主仓库的新分支:
git checkout -b strongloop-master fix_flatten
git pull https://github.com/strongloop/loopback-sdk-android.git master
以防冲突。
git status
告诉你有没有被修改的文件。
git add .
添加新文件。
git commit -am"merge fix_flatten master"
提交更改。
再次git pull https://github.com/strongloop/loopback-sdk-android.git master
切换
fix_flatten
分支git checkout fix_flatten
合并两个分支而不进行 FastForward 合并
git merge --no-ff strongloop-master
你应该看到:
推回到 Github 仓库
git push origin fix_flatten
如果您使用 git:// 而不是 https:// 克隆 repo,您需要:
git remote set-url --push origin https://github.com/MilleZimTech/loopback-sdk-android.git
,使用原始存储库的--push' because without, only the
fetch` 参数将被更新。又一次
git push origin fix_flatten
然后在Github上看到变化喜欢
由于这是最新的 fix_flatten 分支,请在我的仓库的 master 分支上执行拉取请求。
Select
fix_flatten
分支,然后我们可以看到:点击 PullRequest
- 基地
master
分支 - 比较
fix_flatten
分支
- 基地
合并并确认 PullRequest
然后你就可以安全的PullRequest Strongloop repo
结束:
Ouuuf...这很难找到和描述。但我认为这可以帮助那些不太了解的人git。尽管如此,我还是不明白为什么会如此复杂和漫长。
有没有人有更直接的方法来完成这种日常任务?