2

我使用创建了我的私有和本地存储库git clone --bare $upstream (详细在这里如何从 github 服务器在我的服务器上创建 git 存储库?

那时,我不认为我会为原始 github repo 做出贡献。($upstream)
而且我发现拉取请求只能来自 github 存储库。

所以我的问题是如何为原始 github 存储库做出贡献?

我想知道以下策略是否可行:

  1. 我从 $upstream (原始开源 github 存储库)创建了一个 github fork
  2. 以某种方式向我的本地仓库教授新的 github fork(就像我所做的那样git remote add
  3. 在我的本地克隆上创建一个分支(MyWork),工作并推送到新的 github fork
  4. 将请求拉到原始回购作者。

编辑

由于在我的私人仓库中有很多修改(提交),
我需要一种方法来进入当前 $upstream 的干净状态(上游的 master 没有我在我的 origin/master 中进行的本地修改,而不是在 MyWork 中)。

(这样我的拉取请求除了分支(用于拉取请求)之外没有我的修改)

我怎样才能做到这一点?

4

1 回答 1

1

我花了很长时间才弄清楚.. git 中
有一个cherry-pick命令非常适合我的情况。

仅在 GitHub 上发送拉取请求以获取最新提交

基本上,

git checkout -b MyWork_for_pull_request upstream/master (make branch off upstream/master not origin/master)
git cherry-pick `sha-of-MyWork-branch's-commit` (pick out commits I want to contribute)
git push mygithub_fork MyWork_for_pull_request

pull request并在 github 页面中按下。

于 2013-05-22T12:02:40.940 回答