getting-started-with-javascript
getting-started-with-javascript copied to clipboard
Fork 失败的原因 ( 学过Rails报错的看这里 )
Fork 失败的原因
如果你跟着张丽娜同学 @张丽娜 如何从主项目更新fork的项目? Fork 了一个项目,但是发现执行
> git fetch upstream
别人的项目都从上游载入了信息,你的电脑给你一个提示:done。
我这是假电脑吗?
操作步骤
1.检查你的工作目录是否合适
执行 ls
或 pwd
确定工作目录是否正确
不正确的话,先执行
> cd 工作目录路径
2.获取不了上游信息的可能原因
有不少同学应该上过新生大学的全栈营,或者跟上rails 上过入门课。
如果你的 GitHub 上有一个叫first_app
的 respository ,而且你的 first_app
的项目与getting-started-with-javascript
项目正好在同一根目录。现在你的电脑无法正确判断你要更新的项目了,读取到 first_app
的信息后,发现本地数据和 GitHub 数据相同,那么,肯定就不同步了。
3.怎么办
这就像在苹果电脑装 win 系统一样,Boot Camp告诉你我能装,但是你装装试试!驱动不支持、软件卡死、性能低效让你重回 Mac 怀抱,真像一个心机婊。
所以就像老婆和小三不能住在一起,这两个项目不能放在同一根目录下。
3.1 改目录
我在之前的目录下建立了一个叫 Code的文件夹,把getting-started-with-javascript
放了进去
3.2 检查服务器同步的上下游
检查一下当前的配置,看看当前有没有已经设置了上游,这要使用 Git remote -v 命令。
> git remote -v
你将会看到
> git remote -v
origin 你的项目 git 地址 (fetch)
origin 你的项目 git 地址 (push)
能看出来我这里有多个项目吗 ? ᶘ ᵒᴥᵒ ᶅ
我的origin
地址并不是getting-started-with-javascript
,所以需要重新定位 origin 地址。
3.2.1 先移除项目
> git remote rm origin
3.2.2 再重新添加项目
> git remote add origin 你的项目 git 地址
就不会报错了!
3.3 修改repository的上游
将原 repository 设置为自己 fork 出的 repository 的上游(upstream)。
运用如下的命令:
> git remote add upstream 徐老师的 git 代码地址
对于getting-started-with-javascript
,你可以使用以下内容:
> git remote add upstream https://github.com/xugy0926/getting-started-with-javascript.git
运用第一步中提到的git remote -v命令再次检查一下,结果如下:
> git remote -v
你将看到:
> git remote -v
origin 你的项目 git 地址 (fetch)
origin 你的项目 git 地址 (push)
upstream 徐老师的 git 代码地址 (fetch)
upstream 徐老师的 git 代码地址 (push)
3.4 fetch的上游信息
运行
> git fetch upstream
开始下载项目,远程的原repository上确实有一些更新,现在它们已经被download到本地的.git文件夹下了,但是还没有合并到本地的代码中。
3.5 切换至master
git checkout master
这是保证切换到本地的repository的master上,如果本来就在,那么这一步不是必须的。
3.5 合并到本地的master上
git merge upstream/master
将 upstream/master 上的更新合并到本地的 master 上,将第三步中 download 到 .git 文件夹下的那些 change 合并到本地的 master 中。
注意,以上步骤结束后,仅仅是本地的 fork 出的 repository 和原 repository 取得了同步,如果想让远程的 fork 出的 repository 也同样取得同步,必须再 git push origin master
上去。
看吧, pull 和 push 都没问题啦