在不影响现有fork的情况下创建新fork

时间:2016-03-31 06:18:42

标签: git github

我分叉了一个github存储库并对master分支进行了很多更改。有许多特定于我的要求的更改,如果我提交了所有更改的提取请求,则存储库的原始所有者将不会接受该更改,因为许多更改都特定于我的要求。

但我需要提交一些可能被接受的功能,并且对其他用户也很有用。所以现在我想创建一个新的fork虽然我的帐户中已经有一个forked存储库。而且我不想影响现有的分叉。

在新的fork中,我可以添加特定的更改并使用它创建一个pull请求。

我怎样才能完成它?

1 个答案:

答案 0 :(得分:3)

不需要新的叉子!

你没有从fork F请求到原始O,而是从F的分支a到O的分支b!

您创建了一个新的分支(例如,#34; PRQ_feature-您添加的")与原始仓库处于同一级别,然后重新应用您所做的更改并希望分享到此分支。
然后你从这个分支发出拉动请求到原始仓库中的那个。

这实际上符合一般的良好做法:始终为拉取请求创建一个新分支。

代码:
others_username是您想要贡献的原始存储库的用户名 their_branch是您要提取请求的回购分支,通常它是默认的master
$COMMIT_ID是您要共享的提交的ID。但是,您可能需要解决合并冲突 您也可以使用rebase而不是cherry-pick,具体取决于您提交的方式和内容 origin是内部远程名称。您的存储库的引用可能会有所不同,但如果您直接克隆它,那就是默认值。

git remote add other_repo github.com/others_username/project_name
git fetch other_repo
git checkout -b PRQ_new-feature other_repo/their_branch
git cherry-pick $COMMIT_ID
git push --set-upstream origin PRQ_new-feature

在Webinterface中,从分支机构创建拉取请求。

但是你一定要读懂git( not GitHub )分支和分支是如何工作的。
我喜欢" thinklikeagit" (只是谷歌)。