Heim > Fragen und Antworten > Hauptteil
Ich habe das Projekt einer anderen Person auf Github geforkt, es dann geändert und gemäß dem normalen Prozess eine PR eingereicht, und die andere Partei hat es zusammengeführt.
Ich muss jetzt Code zu diesem Projekt beitragen, aber ich habe festgestellt, dass jemand anderes den neuen Code im Projekt-Warehouse der anderen Partei aktualisiert hat. Wie kann ich den Code des gespaltenen Projekts in meinem eigenen Warehouse mit demselben neuesten Versionscode synchronisieren? Das Lager der anderen Partei? Und dann trage ich bei?
世界只因有你2017-06-20 10:08:00
首先 把别人的仓库添加到你的上游远程,通常命名为 upstream。操作一次就可以了。
git remote add upstream 原作者仓库地址
此时再用 git remote -v
就可以看到一个origin是你的,另外一个upstream是原作者的。
其次 更新代码
使用git fetch upstream
拉去原作者的仓库更新。
使用git checkout master
切换到自己的master
使用 git merge upstream/master
, merge或者rebase到你的master
为情所困2017-06-20 10:08:00
如果从上次被merge后,没有在修改你的仓库中fork的代码,那么我建议直接把你的仓库中这个项目删掉,然后重新fork.
我个人不太喜欢楼上说的merge的方式 -- merge方式的历史记录不太好看。
如果不想删除重新fork,可以直接:
git checkout master
git remote add upstream 别人的代码库地址
git fetch upstream/master
git reset --hard upstream/master
怪我咯2017-06-20 10:08:00
先添加你 fork 的库的地址
git remote add FORK-sync https://github.com/xxx/yyy.git
git remote -v
能看到类似的
FORK-sync https://github.com/xxx/yyy.git (fetch)
FORK-sync https://github.com/xxx/yyy.git (push)
origin git@github.xxx/born-1.git (fetch)
origin git@github.xxx/born-1.git (push)
然后接受所 fork 库的内容
git fetch FORK-sync
合并
git merge FORK-sync/master
再推送到你的远程仓库就行了
git push
天蓬老师2017-06-20 10:08:00
cd YOUR-FORKED-REPO
git fetch upstream
git checkout master
git merge upstream/master