几天后,另一个贡献者做了另一个更改。所以我的分支没有包含这种变化......我怎样才能把这个变化分解到我的分叉中?
当我需要删除并重新创建我的分叉时有进一步的变化贡献?或者是否有更新按钮?
解决方案在分叉存储库的本地克隆中,可以将原始GitHub存储库添加为远程。 (例如,Remotes就像存储库的URL的昵称 - 例如, origin 是一个)。然后,您可以从该上游存储库中获取所有分支,并重新分配您的工作继续在上游版本上工作。对于可能如下所示的命令:
#添加远程设备,将其称为上游 : git remote add upstream github/whoever/whatever.git #将远程分支的所有分支提取到远程跟踪分支中,#例如上游/主人: git fetch上游 #确保您位于您的主分支: git checkout master #重写你的master分支,以便你#的所有提交都不在上游/ master中,并在#other分支之上重播: git rebase upstream / master如果您不想重写历史记录(例如,因为其他人可能已经克隆了它),那么你应该用 git merge upstream / master 来替换上一个命令。但是,为了进一步提出尽可能干净的pull请求,最好重新绑定。
如果你已经将您的分支重新分配到 upstream / master ,您可能需要强制推送它以将其推送到您自己的GitHub上的分叉存储库。你可以这样做:
git push -f原点大师您只需在重新出售后第一次使用 -f 即可。
I recently forked a project and applied several fixes. I then created a pull request which was then accepted.
A few days later another change was made by another contributor. So my fork doesn't contain that change... How can I get that change into my fork?
Do I need to delete and re-create my fork when I have further changes to contribute? Or is there an update button?
解决方案In your local clone of your forked repository, you can add the original GitHub repository as a "remote". ("Remotes" are like nicknames for the URLs of repositories - origin is one, for example.) Then you can fetch all the branches from that upstream repository, and rebase your work to continue working on the upstream version. In terms of commands that might look like:
# Add the remote, call it "upstream": git remote add upstream github/whoever/whatever.git # Fetch all the branches of that remote into remote-tracking branches, # such as upstream/master: git fetch upstream # Make sure that you're on your master branch: git checkout master # Rewrite your master branch so that any commits of yours that # aren't already in upstream/master are replayed on top of that # other branch: git rebase upstream/masterIf you don't want to rewrite the history of your master branch, (for example because other people may have cloned it) then you should replace the last command with git merge upstream/master. However, for making further pull requests that are as clean as possible, it's probably better to rebase.
If you've rebased your branch onto upstream/master you may need to force the push in order to push it to your own forked repository on GitHub. You'd do that with:
git push -f origin masterYou only need to use the -f the first time after you've rebased.
更多推荐
我如何更新GitHub分叉库?
发布评论