git介绍与基本使用
linux将代码发布到了网站了,开源了,因此很多开发者不断的贡献代码,这样代码越来越多了,就有了管理代码的问题,所以创建git,就是用来管理linux代码的,后来发现很好用,所以越来越多的项目放在git上了,后来项目越来越多了,其他系统也就开始支持git了(windows, mac)
我们要使用git就要安装客户端
安装完成,提供了控制台
打开开始菜单 (也可以在当前文件夹下空白处点击右键,打开后自动定位到当前文件夹)
Git Bash 为linux家族(Unix, mac等)使用的
Git CMD 为windows使用的
- 由于git为linux提供的,所以建议使用linux指令
1 Git、GitHub、GitLab三者之间的联系以及区别
在讲区别以及联系之前先简要的介绍一下,这三者都是什么(本篇文章适合刚入门的新手,大佬请出门左转)
1.什么是 Git?
Git 是一个版本控制系统。
版本控制是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统。
以前在没有使用版本控制的时候,我们通常在我们的项目根目录下这样命名项目:
project_v1、project_v1.1、project_v2等等
通过这种方式记录我们项目的不同版本的修改,有的时候我们还会在不同版本的文件中写一个说明,记录此版本项目新增、修改,删除等操作。
这样的操作是很繁杂的,有的时候还可能因为一些非人为因素导致文件丢失这样的事故。
有了版本控制系统,我们就不用再手动进行一些繁杂的操作,并且对于文件丢失这种事故我们也不用再担心,你可以随便回到历史记录的某个时刻。
早期出现的版本控制系统有:SVN、CVS等,它们是集中式版本控制系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同合作的开发人员都通过客户端连接到这台服务器,取出最新的文件或者提交更新。
而我们的主角 Git 是分布式版本控制系统。Git 已经成为越来越多开发者的青睐,因为分布式的优势是很显著的。
2.说一下集中式和分布式版本控制系统的区别
集中式版本控制系统,版本库是集中存放在中央服务器的,工作的时候,用的是自己的电脑,所以,我们首先需要从中央服务器上拉取最新的版本,然后开始工作,等工作完了,再把自己的工作提交到中央服务器。在这里借用廖雪峰老师的一个比喻,中央服务器好比是一个图书馆,你要改其中的一本书,必须先要从图书馆里把书借出来,然后更改,改完之后,再放回图书馆。
集中式版本控制系统的一个最大毛病就是必须联网才能工作,所以对于网络环境比较差的情况使用集中式版本控制系统是一件比较让人头疼的事情。
分布式版本控制系统没有中央服务器的概念,我们使用相关的客户端提取的不只是最新的文件,而是把代码仓库完整地镜像下来,相当于每个人的电脑都是一个完整的版本库,这样的话,任何一处协同工作的服务器出现故障,都可以用任何一个镜像出来的本地仓库恢复。并且,即便在网络环境比较差的情况下也不用担心,因为版本库就在本地电脑上。
总结:
(1).分布式版本控制系统下的本地仓库包含代码库还有历史库,在本地就可以查看版本历史
(2).而集中式版本控制系统下的历史仓库是存在于中央仓库,每次对比与提交代码都必须连接到中央仓库
(3).多人开发时,如果充当中央仓库的Git仓库挂掉了,任何一个开发者都可以随时创建一个新的中央仓库然后同步就可以恢复中央仓库
3.GitHub 和 GitLab
GitHub 和 GitLab 都是基于 web 的 Git 仓库,使用起来二者差不多,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
GitHub 作为开源代码库,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管平台
GitHub 同时提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的。
GitLab 解决了这个问题,你可以在上面创建私人的免费仓库。
GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比较 GitHub , 它有不少特色:
(1) 允许免费设置仓库权限;
(2) 允许用户选择分享一个 project 的部分代码;
(3) 允许用户设置 project 的获取权限,进一步提升安全性;
(4) 可以设置获取到团队整体的改进进度;
(5) 通过 innersourcing 让不在权限范围内的人访问不到该资源;
所以,从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。
2 git在linux中的指令
1 | cd 目录 打开目录 |
git bash 下操作文件及文件夹命令:
- 1, cd : change directory的简写,改变目录的意思,就是切换到哪个目录下, 如 cd e:\fff 切换 E 盘下面的fff 目录。
当我们用cd 进入文件夹时,我们可以使用 通配符, cd f, 如果E盘下只有一个f开头的文件夹,它就会进入到这个文件夹.
2, cd .. 回退到上一个目录。我们在写js,引入文件时,.. 表示的就是上一个目录, 所以 cd .. 回退到上一个目录就很好理解了。注意,cd 和两个点点..之间有一个空格
3, pwd : print working directory, 打印工作目录,它会显示我们当前所在的目录路径。
4, ls: list, 列出当前目录中的所有文件, 只不过ll(两个l)列出的内容更为详细。
5, touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6,rm: remove,删除一个文件, rm index.js 就会把index.js文件删除.
7, mkdir: make directory 新建一个目录,就是新建一个文件夹. 如mkdir src 新建src 文件夹.
8, rm -r : 删除一个文件夹, r (recusive 是递归的意思), 删除用的就是递归,先删除文件夹里面的内容,再删除文件夹。 rm -r src 删除src目录。
9, mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下.
10, reset 清屏,把git bash命令窗口中的所有内容清空。
11,exit 可以直接退出窗口,就不会再鼠标按窗口上的来关闭窗口了。
12,cat 查看文件内容, cat 后面 加要查看的文件名
命令行的快捷操作:
1、我们可以使用上下箭头来查找我们以前输入的命令。这个尤其适合npm 命令。当我们输入npm run dev的时候,开启开发模式。但在开发过程中要安装一个组件,如axios, 这时我们就要按ctrl+ c 停止服务器。npm install axios –save.安装完成后,我们要重新启动dev 服务器进行开发,输入npm run dev. 其实这时候,可以不用输入命令,直接按两次向上箭头,命令行中就会npm run dev 命令。当我们打开git bash 窗口后,它就会记录我们输过的命令,按上下箭头,就可以查询历史,找到我们已前输出的命令。
2、左右箭头移动光标修改命令。当我们输入命令的时候,突然发现某个单词拼错了,这时可以按左右箭头来移动光标到拼错的单词或字母上,再Delete 或Backspace 来删除该字母。其实这里有好多的快捷键来快速修改命令。
移动光标: 按左右键头只能一个一个移动光标,如果我们能一个单词一个单词来移动就快多了。Alt + B 和 Alt + F 来解决问题, 一个是向左移动,一个是向右移动。Ctrl + A 则是移动光标到整条命令的起始位置。Ctrl + E 则是移动光标到整条命令的结束位置。
对于编辑或删除来说,有几个快捷键也可以同样完成任务。 Ctr+D, 相当于Delete, Ctrl + H 相当于Backspace。 Ctrl + U 删除光标左侧的所有内容, Ctrl + K删除光标右侧的所有内容。Ctrl + W 删除光标左侧的单词, Alt + D 删除光标右侧的单词。3、 Tab 键的使用。 当我们想进入到一个目录或文件夹时,如果文件名很长,要一个一个输入,那是一件很麻烦的事情。这时tab 的作用就来了,当我们输入文件名的前几个字母时,按tab, 如果有文件名可以匹配,它就会显示出完整的文件名,如果有多个文件名匹配到,它会显示最先找到的一个。再按一次tab,它就会匹配的下一个,我们可以不停地按 tab键在匹配的文件名中来回切换,直到找到我们文件名为止。
例:
在C:\Users\Administrator\Desktop\web\03 大数据可视化与Git\03-01\git 创建demo文件夹,并创建readme.txt文件,写入 Hello World
3 介绍git
git文件分为三类文件:
第一类:未纳入缓存的文件
- 这类文件,一旦删除,就再也无法找到
第二类:纳入缓存的文件
- 一旦删除,可以通过git来查找
第三类:纳入版本库的文件
- 这类文件,可以通过计算机的各个位置找到
4 使用git
通过git init
来初始化一个项目文件
1 | objects就是用来存储纳入缓存的文件(第二类文件) |
git add文件
1 | 可以是将未纳入缓存的文件,变为第二类文件 |
git add *
1 | 实现将所有文件都纳入缓存,add后有空格 |
git status
1 | 查看当前文件的状态 |
git rm –cached 文件
1 | 实现将第二类文件转为一类文件(未纳入缓存) |
fork项目
修改自己仓库的代码
新建 Pull Requests
等待作者操作审核合并
1 |
|
git remote add origin https://github.com/mango185/test.git
1 |
|
git add * 表示添加所有更新的内容到缓存区
git add . 表示添加所有内容
1 |
|
git reset
git revert
1 |
|
git revert 5lk4er
git revert 76sdeb
1 |
|
github pages仅支持静态网页
仓库里面只能是html文件
```
11.2 project pages项目站点
访问:https://用户名.github.io/仓库名
搭建步骤:
① 进入项目主页,点击Settings
② 在Settings页面,Github Pages中点击Choose a theme,选择主题
③ 选择主题
④ 新建站点基础信息设置
⑤ 生成网页