分叉项目的通常工作流程是基于上游分支(通常是)创建自己的分支(或多个分支upstream/master
),并在其中完成所有工作。每个分支通常封装一个特性。你会发送你想要贡献的功能的拉取请求。
因此,对于您的示例:
进行了更改A,我希望原始项目包括在内。
您通常希望为更改A创建一个功能或错误修复分支,并将其作为拉取请求提交到 GitHub,如下所示:
# Make a branch based off of upstream/master
git checkout -b branch-A upstream/master
# Make some changes, then commit them
git add .
git commit
# Push the branch to your fork, then go to GitHub and submit the pull-request
git push origin head
进行了更改B,这对他们没有用,所以我不希望他们将其包含在他们的版本中。
如果您不希望项目所有者进行此更改,请将其隔离到自己的分支中,并且不要为它发出拉取请求。请注意,如果您愿意,您仍然可以将分支备份到您自己的远程分支:
# Make a branch based off of upstream/master
git checkout -b branch-B upstream/master
# Make some changes, then commit them
git add .
git commit
# Push the branch to your fork
git push origin head
进行了更改C,我确实希望他们使用。
为C创建另一个分支,就像为A所做的那样:
# Make a branch based off of upstream/master
git checkout -b branch-C upstream/master
# Make some changes, then commit them
git add .
git commit
# Push the branch to your fork, then go to GitHub and submit the pull-request
git push origin head