getting-started-with-javascript icon indicating copy to clipboard operation
getting-started-with-javascript copied to clipboard

Fork 失败的原因 ( 学过Rails报错的看这里 )

Open xiaochaogezaici opened this issue 7 years ago • 0 comments

Fork 失败的原因

如果你跟着张丽娜同学 @张丽娜 如何从主项目更新fork的项目? Fork 了一个项目,但是发现执行

>  git  fetch  upstream

别人的项目都从上游载入了信息,你的电脑给你一个提示:done。

upstrea

我这是假电脑吗?

操作步骤

1.检查你的工作目录是否合适

执行 lspwd 确定工作目录是否正确

不正确的话,先执行

> 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 都没问题啦

上载

xiaochaogezaici avatar Aug 31 '17 05:08 xiaochaogezaici