getting-started-with-javascript
getting-started-with-javascript copied to clipboard
如何从主项目更新我fork过来的项目
需要从主项目更新自己fork的项目。请参考文档。
https://github.com/xugy0926/getting-started-with-javascript/blob/master/topics/%E5%A6%82%E4%BD%95%E4%BB%8E%E4%B8%BB%E9%A1%B9%E7%9B%AE%E6%9B%B4%E6%96%B0fork%E7%9A%84%E9%A1%B9%E7%9B%AE.md
git remote add upstream xxxx
这里面的 xxxx,一直不懂,刚Google一篇文章说是 上游仓库名称.git
于是我试了 https://github.com/xugy0926/getting-started-with-javascript.git
可还是不对
学习了
问题刚解决,谢谢
感谢同学热心的贡献,我个人觉得,文档里应明确每个操作步骤的进入路径,这样更能利用我这种小白操作,反复试了好几次,才成功。
@zzzyyyyjjj 能把你之前解决不了的原因在这里说明一下吗
老师,上次不知道怎么搞,成功了。但是今天又是这个问题。我用的是windows 按照流程操作后,提示的是以下代码 $ git remote add upstream https://github.com/xugy0926/getting-started-with-javascript.git fatal: Not a git repository (or any of the parent directories): .git 解释是出现这个问题后,发现其实是在本系统下没有找到一个.git这样的目录
(后来花了一点时间,google 了一下 发现输入git init 运行就可以解决问题)
你没有进入本地的getting-started-with-javascript操作。.git这个的目录只存在你项目(getting-started-with-javascript)里。
我提交过两次pr,更新主项目两次。参考了两位同学的文章,张丽娜https://github.com/xugy0926/getting-started-with-javascript/blob/master/topics/%E5%A6%82%E4%BD%95%E4%BB%8E%E4%B8%BB%E9%A1%B9%E7%9B%AE%E6%9B%B4%E6%96%B0fork%E7%9A%84%E9%A1%B9%E7%9B%AE.md 和何伟的文章https://github.com/xugy0926/getting-started-with-javascript/blob/master/topics/Git%E5%AE%9E%E6%88%98%E7%AC%94%E8%AE%B0.md 张丽娜同学的文章中 第一步的意思是进入到你自己的本地目录下,这个本地目录是你通过fork主项目到你的主页(xxx/getting-started-with-javascript)上,然后clone得来的。因为没有更新的缘故,所以提交会出现冲突。 如果你已经操作了fork和clone就直接进入本地项目仓库。 (有冲突的情况是基于旧版的文件a进行修改但没提交,而另一个用户修改了a,已经提交。这个时候提交服务器,而服务器上是新版的a,故冲突。) 第二步是关键 git remote add upstream https://github.com/xugy0926/getting-started-with-javascript.git(xxxx,这里的xxxx就是主项目,你fork的那个项目地址,也是clone一下,点击复制按钮的简单操作即可)git远程添加上游项目(就是主项目) 第三步git checkout master确认主项目 第四步git fetch upstream从上游抓取 第五步git merge upstream/master进行主节点和上游节点合并 第六步git push origin master这里push到了你fork的项目上,这个项目同主项目一样再服务器上。这一步可以反复操作,因为你可能要修改添加的你那份文件,用git add -A,git status,git commit -m"提示语",git push origin master 第七步就是向主项目发起pull request 在张丽娜的文章中第二步有提示说,如果再次更新主项目则省略这一步,我按照操作了一遍发现不行,因此参照何伟的文章中‘和老师的仓库保持同步’这部分: 首先,添加徐老师的仓库,并命名为upstream,方便以后再次调用。
git remote add upstream https://github.com/xugy0926/getting-started-with-javascript.git 然后将老师的仓库中的内容下载至本地。注意,下载至本地的内容,和自己的仓库是互不干扰的。 git fetch upstream master 这时,徐老师仓库的最新内容已经下载至本地了。
我们先不急着合并进来,先看看自己的仓库和老师的仓库有哪些不同。
git diff upstream/master 下图是执行后的结果 注意,执行git diff后,终端会进入vim环境,注意看图中最后一行行首的冒号。按一下q键,退出vim环境即可。
对比完徐老师和自己仓库的不同之后,就要把这些内容(upstream/master,代表upstream这个源的master分支)合并到自己的仓库中了。
git merge upstream/master 然后就可以提交自己的更改,或者进行其它操作了。
个人认为何伟同学的叙述较为清楚,操作性强。
又看了一遍概念又清晰了很多。这里想到个问题:
git add .
和 git add -A
的区别是什么?
于是Google到了答案:
git add -A
stages Allgit add .
stages new and modified, without deletedgit add -u
stages modified and deleted, without new
然后我以后我都要用git add -A
了。
https://stackoverflow.com/questions/572549/difference-between-git-add-a-and-git-add