我在GitHub上分叉某人的存储库,并希望使用原始存储库中的提交和更新来更新我的版本.这些都是在我分发我的副本后制作的.
如何引入在原点中所做的更改并将它们合并到我的存储库中?
Von*_*onC 681
您必须将原始存储库(您分叉的存储库)添加为远程存储库.
一旦克隆完成,你的repo将有一个名为"
origin
" 的遥控器指向你在GitHub上的分叉.
不要让这个名字混淆你,这并不是指你分叉的原始回购.为了帮助您跟踪该回购,我们将添加另一个名为"upstream"的远程:
$ cd github-services
$ git remote add upstream git://github.com/pjhyett/github-services.git
$ git fetch upstream
# then: (like "git pull" which is fetch + merge)
$ git merge upstream/master master
# or, better, replay your local work on top of the fetched branch
# like a "git pull --rebase"
$ git rebase upstream/master
Run Code Online (Sandbox Code Playgroud)
你还有一个红宝石宝石,可以促进那些GitHub操作.
另请参阅" Git fork是git clone? ".
n00*_*hie 99
除了VonC的答案,你可以根据自己的喜好进一步调整它.
从远程分支获取后,您仍然需要合并提交.我会替换
$ git fetch upstream
Run Code Online (Sandbox Code Playgroud)
同
$ git pull upstream master
Run Code Online (Sandbox Code Playgroud)
因为git pull本质上是git fetch + git merge.
Dmi*_*lov 63
脚步:
Pull Requests
.New Pull Request
.默认情况下,GitHub会将原始文件与您的fork进行比较,如果您没有进行任何更改,则不应该进行任何比较.switching the base
.现在GitHub会将你的分叉与原版进行比较,你应该看到所有最新的变化.Create a pull request
此比较并为拉取请求指定可预测的名称(例如,从原始更新).Create pull request
.Merge pull request
,最后Confirm
合并.如果您的fork没有任何更改,您将能够自动合并它.Raj*_*Raj 57
使用:
git remote add upstream ORIGINAL_REPOSITORY_URL
Run Code Online (Sandbox Code Playgroud)
这会将您的上游设置为您分叉的存储库.然后这样做:
git fetch upstream
Run Code Online (Sandbox Code Playgroud)
这将从原始存储库中获取包括master在内的所有分支.
在本地主分支中合并此数据:
git merge upstream/master
Run Code Online (Sandbox Code Playgroud)
将更改推送到分叉存储库,即到源:
git push origin master
Run Code Online (Sandbox Code Playgroud)
瞧!您已完成同步原始存储库.
如果你想在没有 cli 的情况下完成,你可以在 Github 网站上完成。
New pull request
。Create a new pull request
.