注意保存自己的笔记吧,看来这个typora还是有点bug,居然还被我碰到了,今天突然死机,重启电脑后,看我自动保存的里面居然没有后来连上网了又有了,这就不说了嘛,但是命名文件有几kb的大小,为什么我一点开就是空白,我又重新开始学了,重新做一份笔记,还好代码量不是很大,看来以后时常要ctrl+s常按了。
一.开源相关概念
1. 什么是开源
开放源代码,代码公开任何人可以去使用、修改的。
2. 开源许可协议
- GPL:具有传染性的一种协议,项目有这个协议了,项目中的任何项目都必须使用这个协议,他的特点是不允许修改和衍生的代码作为闭源的商业软件发布和销售(linux就是该协议,所以他下面的项目都要采用这个协议)
- MIT:限制最少协议,在修改后的代码或者发行包中包含原作者许可信息即可。(jquery、node.js)
3. 开源项目托管平台
- github
- gitlab
- gitee
二.github
1. 创建空白远程仓库
2. 远程仓库两种访问方式
-
HTTPS:零配置,但是每次访问仓库时都要输入账号密码
还是需要在本地里面创建项目并且放入暂存放入仓库的地步
-
SSH:额外配置,但是不再需要输入账号密码(推荐)
先要生成ssh Key
然后配置github
测试是否配置成功
SSH上传仓库(同样需要提交本地仓库)
创建一个新的仓库,然后点击ssh链接按照步骤即可
3. 新修改的项目如何上传?
直接git push 即可
4.将远程仓库克隆到本地
git clone
三.分支
1. 概念
我理解的意思就是相当于平行宇宙,这个世界的你在学git,那个世界的你在学vue,这就是两个分支,未来某一天还可能会合并,git和vue我都会。
2. master(main)主分支
注意:2020年十月开始github就将主分支也就是默认分支改为了main,在我们的老仓库看的到还是master的主分支
在我们初始化git init本地仓库的时候就会自动创建子一个master主分支出来。
它的作用是用来保存和记录整个项目已完成的功能代码,所以一般不推荐程序员直接去修改master主分支上的代码,因为这样风险太高容易导致项目崩溃。
3. 功能分支
也就是主分支上分叉出来的各个功能的分支,完成后合并到主分支上。
4. 查看分支列表
git branch
5. 创建新分支
git branch 分支名称
注意:只是创建并不会到这个分支上
6. 切换分支
git checkout 分支名称
7. 分支的快速创建和切换
git checkout -b 分支名称
这个代码可以直接创建又马上切换到创建的分支上,其实就相当于把branch简写了。
8. 合并分支
好了刚才的笔记终结到这里就结束了,又学了一编,我来详细阐述一下流程
-
先创建一个项目,在项目里面打开终端切换到login分支在这个分支里面完成登录需求
注意:我们虽然是一初始化就有这么一个master主分支,但是要上传文件后才能在git branch里面看到他才能切换他,所以第一次项目的创建还要先本地上传一次仓库
注意我们的我们此时的文件都有大小的
-
切换回主分支,注意看文件大小
9.删除分支
当我们把功能分支代码合并进去后就可以删除了,因为完成了功能业合并了进去这个分支就没用了
git branch -d 分支名称 需要在另外的分支上删除
注意:当分支没有合并到主分支的时候删除会失败,因为里面有文件没有合并删了就没得了,这个时候要强制删除 -D
10.遇到冲突时的分支合并
当我们在两个不同的分支里面对同一个文件都做了修改都上传了本地仓库,这个时候再来合并就会报错,这个时候需要我们手动的去找到发生错误的文件然后解决冲突之后在执行git add 和 git commit
两边都输入了一些新代码并上传仓库
合并报错了,这个时候应该手动打开报错的文件,进行手动修改
这个时候将这个文件用vscode打开可以选择以哪个的为准进行存储
修改完毕放入暂存区,上传仓库,就可以合并进来了
11.将本地分支推送到远程仓库
第一次需要执行以下代码:
远程分支名称没有的话定义的远程分支名字相当于下定义;默认远程仓库别名就为origin
注意:第一次把本地分支推送远程仓库需要-u参数,后面直接git push即可
12.查看远程仓库分支列表
git remote show 远程仓库名
13.跟踪分支
即从远程仓库将远程分支下载到本地仓库中。
注意:这里是两种方法前面两句是把远程分支下下来以pay命名;后面两句话是将远程分支重命名下载下来
方法一:
方法二:
14.拉取远程分支最新代码
git pull
github在线编辑
此时的大小
pull后的代码大小
15.删除远程分支