一 GIT
1.1 shell和vi编辑器
shell--操作计算机
图形界面:shell提供友好的可视化界面,调用相应的程序
命令行:shell 输入特定命令的方式,调用相应的应用程序
window下使用bash,需要一个软件,此软件集成了bash大部分命令----》git bash linux默认使用bash
bash命令格式 命令 选项 参数 查看帮助: 命令 --help
bash命令:
1.pwd 查看当前目录 从盘符开始
2.cd 切换目录 例如 cd windows cd .. 返回上一级
3.ls 查看当前目录下的内容 ls -a 隐藏的目录会显示(显示所有的内容) ls -l 以列的形式呈现内容
4.mkdir 创建目录 mkdir images
5.touch 创建文件 touch index.html touch js/jQuery.min.js
6.cat 查看文件的全部内容 cat index.html
7.rm 删除文件(不能删除目录) rm index.html
8.rmdir 删除目录 (仅限删除空目录) rmdir css rmdir -r css 递归删除:从内到外全部删除
9.mv 剪切操作 mv index.html images 把index.html剪切到images文件里 可以改名为别的名字 mv index.html imagse/base.html
mv index.html main.html 重命名
10.head 查看前几行 head -10 index.html
11.tail 查看后几行 tail -n 10 index.html
12.tab 自动补全
13.history 历史纪录
>和>> 重定向 ls > index.html 把本来输出到屏幕上的内容输出到index.html
echo hello word ! > index.html 如果没有该文件,将会自动创建文件并添加内容
> 重定向 >>覆盖重定向
14.wget 下载
15.tar 解压
16.curl 网络请求 curl http://www.baidu.com
17. whoami 返回当前用户的名称
18. | 管道符 让多个命令链接 上一次命令的输出,为下一个命令的参数
19.grep 匹配内容 ls | grep s 在ls输出的所有文件中,查找带有s的名字的文件
2.1 VI编辑器
三种模式: 命令模式,输入模式(i/a),底行模式(:) ESC 返回命令行模式 w保存 q退出
SSH 安全外壳协议 是一种非对称加密模式的网络协议
计算机之间的加密登陆 一般为对称性加密 即是加密和解密使用同一个密钥
非对称加密 加密和解密使用不同的密钥 公秘和私密
命令: ssh student@192.168.141.61 确定是否登陆 yes/no 输入密码 在登陆的时候会把公钥保存到自己电脑上
版本控制
记录一个或若干个文件内容变化,以便将来恢复
本地版本控制 功能单一,难实现多人协同开发 (存储在本地)
集中式版本控制 (svn) 集中管理的服务器。但是出现故障会导致数据丢失
分布式控制(git) 每个开发者都有一个完整的版本库
git诞生于 linux
安装 http://git-scm.com/download/win 安装
工作原理:
已提交 git仓库 保存项目元数据和对象数据库
已修改 工作目录 某个版本独立提取出来的
已暂存 暂存区域
流程: 工作目录 --》 暂存区域 --》 git仓库 --》 工作区域
GIT操作
1.进入项目的根目录 cd
git init 创建一个git库
配置用户信息-----》配置一次即可
git config --global user.name 例: jerry
git config --global user.email 例: jerry@163.com
git config --list 用户配置信息
git log 操作信息
git status 查看被修改的文件
git add 文件名 将文件放入暂存区 git add -A 暂存所有
git commit 备注信息 git commit -m 备注信息 将暂存区的内容放到仓库中‘
git checkout index.html 撤销更改 把暂存区的内容还原到工作区
git log 查看历史版本
git reset --hard 备注信息中的commit 返回到某一个版本
git分支 解决多任务冲突 master分支 至少需要commit一次
git branch cart 新建分支
git branch 查看所有的分支
git checkout 分支名称 切换分支
git merge master 合并分区
git branch -d/D cart 删除分支 -D强制删除 且不能在本分支中删除
远程仓库 多人协同开发
创建共享仓库的条件
1.创建以.git结尾的目录
2.必须是一个“裸仓库” 没有功能的仓库 git init --bare 创建一个裸仓库
实例:
1.本地 git init git status git add -A git commit -m “初始项目”;
2.远程仓库创建 mkdir huangpo.git cd huangpo.git git init --bare
3.本地上传或获取
git push student@192.168.1.1:/home/student/huangpo.git master
git pull student@192.168.1.1:/home/student/huangpo.git master
解决多任务的步骤
git init 创建仓库
git add -A 把所有的文件都放到暂存区
git commit -m “登陆模块” 把暂存区的文件放到库 第一次commit---》 master
git branch 显示所有的分支
git branch cart 新建cart分支
git checkout cart 切换到cart分支 git checkout -b ‘分支名’ 新建并切换分支
此时发现master分支有bug
git add -A 保存cart分支下的内容到暂存区
git commit -m “正在开发购物车” 把cart分支的暂存区内容保存到库
git checkout master 然后切换到有bug的master 分区
正在修复bug,修复完之后
git add -A 把master分支修改之后的内容保存到暂存区
git commit -m ‘把暂存区的内容上传到库’
git checkout cart 切换到cart分支继续之前的开发 但是由于cart分支里的master分支部分任然存在bug
git add -A git commit -m “合并之前的cart分支” 合并之前必须先上传
git merge master 合并分支,解决了cart分支任然存在bug的问题 合并的时候会进去vi编辑器,先切换到输入模式(i/a),然后切换到底行模式wq 保存退出
主机地址的简写
git remote 查看已有的远程主机
git remote add huangpo student@192.168.1.1:/home/student/huangpo.git 用主机名huangpo 代替后面常常的主机地址和文件路径
git remote show huangpo 显示主机的真实地址(即ip地址)
克隆仓库(复制全部内容) git clone student@192.168.1.1:/home/student/huangpo.git
github的操作
1.新建库 2.设置库的名称 3.在电脑上创建密钥和公钥 ssh-keygen -t rsa 生成了一个密钥一个公钥,把公钥文件打开并复制,保存到github账号下的setting里的钥匙库里面,就可以实现不要输入密码链接
4.上传或者获取github某个库下面的文件 git push/pull git@github.com:huangpo1996@demo.git master
5.如果想要输入路径得到页面。则需要把库的名字设置成账号名.github.io
6.如果想要直接得到整个项目,只需要克隆整个库即可 git clone git@github.com:huangpo1996@huangpo1996.github.io
分支的规范
1.不要有太多的分支
2.要有一个稳定的分支 ,master分支不轻易修改
3.必须有一个开发者分支 developer , 保证master分支的稳定性
4.所有的功能分支从 开发者分支 developer创建
5。所有的功能开发完成之后新建发布测试分支release(在developer上创建,得到developer的已经开发好的功能,并测试,没问题后放入到master分支)