Github进行fork后如何与原仓库同步
Posted SoaringPigeon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Github进行fork后如何与原仓库同步相关的知识,希望对你有一定的参考价值。
Github进行fork后如何与原仓库同步
在你 fork 之后, SamsungLabs(原仓库)的仓库又更新了,但 github 不会自动帮你把SamsungLabs的仓库同步给你 fork 后的仓库,导致你提交 pull、request 时的版本和SamsungLabs的版本不一致。Github进行fork后如何与原仓库同步呢?
最省事的办法可能是:在你fork的仓库setting页翻到最下方,然后delete这个仓库;然后重新fork SamsungLabs 的仓库,并 git clone 到你的本地。
有时候,你需要用到这个省事的办法,比如 SamsungLabs 的仓库再次整理了 commit 。但在更多情况下,删掉自己fork的库,应该是你的最后选择,而不应该是首选。
此时你就需要用到 merge,版本管理是软件工程极其重要的规范,也是极其基础的必备技能。而 merge 则是版本管理中最必须也最常用的场景。
以下为案例操作步骤:
1.Github上fork https://github.com/SamsungLabs/fcaf3d
2.git clone 到本地
3. 执行命令 git remote -v
查看你的远程仓库的路径
如果只有上面2行,说明你未设置 upstream (中文叫:上游代码库)。一般情况下,设置好一次 upstream 后就无需重复设置。
4.执行命令 git remote add upstream https://github.com/SamsungLabs/fcaf3d.git
把 SamsungLabs 的仓库设置为你的 upstream 。这个命令执行后,没有任何返回信息;所以再次执行命令 git remote -v
检查是否成功。
5.执行命令 git status
检查本地是否有未提交的修改。如果有,则把你本地的有效修改,先从本地仓库推送到你的github仓库。最后再执行一次 git status
检查本地已无未提交的修改。
git add -A
或者 git add filename
git commit -m "your note"
git push origin master
git status
注:这一步作为新手,建议严格执行,是为了避免大量无效修改或文本冲突带来的更复杂局面。
6.执行命令 git fetch upstream
抓取 SamsungLabs 原仓库的更新:
7.执行命令 git checkout master
切换到 master 分支
8.执行命令 git merge upstream/master
合并远程的master分支
9.执行命令 git push
把本地仓库向github仓库(你fork到自己名下的仓库)推送修改
如果担心自己不小心改了哪里,可以再次执行命令 git status
检查哪些文件有变化。这个操作仅是检查,不会改变任何状态,放心用。
现在你已经解决了fork的仓库和原仓库版本不一致的问题。可以放心向 SamsungLabs 发起 pull request 了。如果以上操作你花了不少时间,而 SamsungLabs 的仓库 又恰好更新了。很好,一次新的练习机会来了……
Reference: Github进行fork后如何与原仓库同步:重新fork很省事,但不如反复练习版本合并
以上是关于Github进行fork后如何与原仓库同步的主要内容,如果未能解决你的问题,请参考以下文章