远程仓库
Git 远程仓库相当的操作实际可以归纳为两点:向远程仓库传输数据以及从远程仓库获取数据。
Clone
克隆远程仓库代码 克隆过来的项目代码是一般是没有node_modules文件夹的,需要用npm i(全写:install) 下载所用的依赖
git clone <远程仓库地址>
练习: 执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1900d3598550460fa5580fdc65e5aff0.png)
git clone
执行后 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9cfb7f9e35864218be795ef56b0f0d63.png)
远程分支
远程分支(类似origin/master等)反映了远程仓库(在你上一次拉远程代码时)的状态,在你检出时自动进入分离 HEAD 状态。 远程分支命名规范:
<remote name>/<branch name>
origin/master
练习: 执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f97305469c994b81bf1229a4f4de8e3b.png)
git checkout o/master
git commit
执行后 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3861c2c0901f44e5bd4602c27a7ba446.png) commit提交后,就分离 出HEAD 状态,当添加新的提交时 o/master 也不会更新。这是因为 远程分支只有在远程仓库中相应的分支更新了以后才会更新。 例子: ![在这里插入图片描述](https://img-blog.csdnimg.cn/c0cfb67966774b68845fa1bcb459c775.png)
git commit
git checkout o/master
git commit
fetch
从远程仓库获取数据 fetch 通常通过互联网(使用 http:// 或 git:// 协议) 与远程仓库通信。 将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态。 fetch 并不会改变你本地仓库的状态。也不会修改你磁盘上的文件 练习: 执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bc8736b3c45641a9803eb042d3a0b01b.png)
git fetch
从远程仓库下载本地仓库中缺失的提交记录;更新远程分支指针( o/master)。
执行后 ![在这里插入图片描述](https://img-blog.csdnimg.cn/321a54d671bd4eb79dca0e87d3142037.png) 例子练习:
git fetch
![在这里插入图片描述](https://img-blog.csdnimg.cn/dd36ee92afbb42f29f6ea840dd567392.png)
Pull
更新远程分支代码,与本地分支分支合并 若远程仓库只有一条分支可直接使用git pull,若有多条分支则使用 git pull <远程仓库名称>/<分支名称>
执行前: ![在这里插入图片描述](https://img-blog.csdnimg.cn/7846a7bb121f4d51a4dc71a153c80d2e.png)
git fetch
git merge o/master
执行后: ![在这里插入图片描述](https://img-blog.csdnimg.cn/d7d646ec8b8946cab0fbb227562ec7e7.png)
git pull == git fetch;git merge <分支名>;
例子练习:
git pull
git fetch
git merge o/master
![在这里插入图片描述](https://img-blog.csdnimg.cn/9b740d3552f744e198e2a74fee7f2b5b.png)
模拟团队提交
git fakeTeamwork :在远程仓库的 分支(默认是master)上做提交。
git fakeTeamwork <分支名> Num(提交次数)
git fakeTeamwork develop 3
git fakeTeamwork
执行前: ![在这里插入图片描述](https://img-blog.csdnimg.cn/eb11631f6c66484faba846bcc476b56c.png) 执行后
git fakeTeamwork
![在这里插入图片描述](https://img-blog.csdnimg.cn/37982c80b7554ab99a45c6efcbe788ac.png)
执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a064d0db6f364224bf867d3eb27b5117.png) 执行后
git fakeTeamwork foo 3
![在这里插入图片描述](https://img-blog.csdnimg.cn/9eef1e5f0567436d8d25f41036f9a07e.png) 例子练习: ![在这里插入图片描述](https://img-blog.csdnimg.cn/960b9f4edb714e72a34a9a68ab9bd4e1.png)
git clone
git fakeTeamwork 2
git fetch
git commit
git merge o/master
git commit
git pull
push
负责将本地分支的变更上传到指定的远程仓库,并在远程仓库上合并新的提交记录,然后更新本地的远程分支
执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/db0cf8422eb742379b55c5ea27df9a2e.png) 执行后
git push
![在这里插入图片描述](https://img-blog.csdnimg.cn/3228df7d09a442c1836e64e2bac737b0.png) 例子练习 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1158e177d2c447d7a4079b2726783aa4.png)
git commit
git commit
git push
推送冲突(偏离的工作)
远程仓库中的分支是最新,而本地仓库中的代码是旧,远程仓库中有更改,与本地的有冲突
执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0aab638a9bca40a4878ee94a4574b3cc.png)
执行后
git fetch
git rebase o/master
git push
![在这里插入图片描述](https://img-blog.csdnimg.cn/957d8389fdd540afa2e84bd8fcb6c60f.png) 执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ec4270e9537340249d8cf936b67f6988.png)
执行后
git fetch
git merge o/master
git push
![在这里插入图片描述](https://img-blog.csdnimg.cn/2578b909eaa746a4a31b2c0875a04ff1.png)
git pull == git fetch;git merge <branch>
git pull --rebase == git fetch;git rebase <branch>
执行前 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ffc344c89b514a6d808fac863c5d89c0.png) 执行后
git pull --rebase
git push
例子练习 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0d7ec29c1f4f4e8e9c75cdfb6513c16d.png)
git clone
git fakeTeamwork
git commit
git pull --rebase
git push
|