我有这种情况。我从 github 分叉了一个 repo。我在本地的单独分支中进行了一些更改。然后将其与master合并。然后我把它推送到我的 github 仓库。我也发送拉取请求。
有人在主仓库上的文件中进行了更改。我想获取它并在该文件中进行更改。我想单独发送它的拉取请求。
我如何从我的本地仓库开始?
我在本地的单独分支中进行了一些更改。然后将其与master合并
不要:您应该从您分叉的上游仓库中不存在的分支发出拉取请求。
这样,您可以始终与上游(原始)存储库保持master
同步。master
有关更多信息,请参阅“关于拉取请求的一些技巧”。
这意味着:
我从 github 分叉了一个 repo。我在本地的单独分支中进行了一些更改
推送该分支,并从该分支发出拉取请求(带有目标upstream repo/master
:)
然后,您可以从上游拉取以更新您的 master(您永远不会触及:您只需将上游 repo 中的提交添加到本地克隆,并将 master 推送到您的 fork 以使其保持最新状态)。
然后,您可以在更新后的 master 之上重新设置本地分支,检查一切是否仍在工作,然后将 --force 推送到您的 fork 该分支。
神奇之处在于:您现有的拉取请求将自动更新为您刚刚强制推送的分支中的新提交。
详细说明:
cd /local/path/to/your/clone
git remote add upstream https://github.com/user/original_repo
git fetch upstream
git checkout master
# reset master to upstream master
git reset --hard upstream/master
git checkout yourBranch
git rebase master
# check that everything works
git push -f origin master
git push -f origin yourBranch
# Make your pull request from your branch in your fork on GitHub
一旦完成,您的补丁的未来演变意味着:
# update master with upstream master new commits
git checkout master
git pull upstream master
# rebase your local branch
git checkout YourBranch
git rebase master
# check that everything still works
git push origin master
git push origin yourBranch
# your pull request will AUTOMATICALLY BE UPDATED!
# nothing to do on GitHub