终端
终端:终端是一个在窗口中绘制文本的程序, 它会在屏幕上显示输出,也能让你通过键盘输入内容。但是终端本身并不知道如何处理你的输入内容,只是把你输入的东西发送给某个独立的应用程序(并不一定是Shell,终端完全可以不依赖Shell运行各种终端程序。比如你在Python解释器的终端中,就可以直接通过这种终端发送一段Python脚本给Python解释器运行;你也可以在通常所说的终端中直接指定Shell的特定处理程序)
Shell
Shell:就是上一点所说的”独立的处理程序”中的一种。它能将你输入的内容解释为命令,确定你想运行的程序并运行之,然后将输出发送回给终端。顾名思义,Shell是用户和Linux之间的接口程序。你在提示符下输入的每个命令都由Shell先解释然后再传给Linux内核。Shell是一个命令语言解释器。(Shell可以分为图形形式和命令行形式)
Bash
Bash: Shell有很多种,Bash就是其中目前使用最广泛的一种
常用的Bash指令:
ls
查看当前目录
注:-l表示查看目录列表 -a表示查看隐藏目录
cd
进入目录
mkdir
创建文件夹
touch
创建文件
rmdir
删除文件夹(此文件夹必须是空文件夹)
rm
删除文件
cp
复制文件
vi 文件名
用vi编辑器打开文件
注:vi编辑器有三种模式,分别是命令模式、插入模式、末行模式。打开vi编辑器初始为命令模式。
命令模式:按i/a等键可以进入插入模式
插入模式:此模式下可以对文本内容进行编辑,按esc键可以退出到命令模式
末行模式:命令模式按shift+:可以退出到末行模式,w为保存,q为退出,q!为强制退出
Linux内核 相当于你的大脑
终端 相当于你的眼睛
Shell 相当于可以将眼睛看到的多彩事物处理成大脑能接受的命令程序集
Bash 相当于一个很大且很漂亮的眼睛,眼睛有多种,只是大家都喜欢而已
git
git:分布式版本控制系统(版本控制工具),我所理解的git,可以让你得到任何时间下修改的版本。同时可以管理多人协同开发,不会导致相互覆盖
git管理文件分为三种状态,分别是已提交(commited)、已修改(modified)和已暂存(staged)。
git项目的三个工作区域,分别是工作目录、暂存区域和Git仓库。
工作目录:对项目的某个版本独立提取出来的内容,这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。(用户在本地计算机所定义的仓库文件夹中所可以看得到的目录)
暂存区域:是一个文件,保存了下次将要提交的文件列表信息,一般在Git仓库目录中。(仓库文件夹下的隐藏文件)
Git仓库目录: Git用来保存项目的元数据和对象数据库的地方。(仓库文件夹下的隐藏文件)
常用的git命令
(1)要使用git来管理我们的代码,首先获得一个仓库,进入根目录,执行git init
这样就可以创建一个.git隐藏目录(仓库)
(2)git config
配置用户信息(只需要配置一次)
git config --global user.name 用户名
git config --global user.email 用户邮箱
注:可以通过git config --list
查看用户配置信息
(3)git status
查看仓库状态
(4)git add 文件名
将文件放入暂存区
(5)git checkout 文件名
可以将暂存区的内容还元到工作区
(6)git commit -m 备注信息
将暂存区内容放到仓库永久存储(并且声称一个新版本/存盘点)
(7)git log
查看当前版本/存盘点/历史
(8)git reset --hard 提交ID
工作区返回到某id(版本)下的内容
注:可以通过git log查看各个版本ID
commit a59c98b9245aec5fcc63fe9f4ee5dc8bf9bd1a5a
则ID为a59c98b9245aec5fcc63fe9f4ee5dc8bf9bd1a5a
git分支:
(1)git branch 分支名
创建新分支(新分支会继承此时的分支)
(2)git branch
查看分支(*代表此时处于哪个分支)
(3)git checkout 分支名
切换分支
>>>>>HEAD
//此处为你merge的代码
=====
//此处为另外一个分支merge的代码
>>>>>另外一个分支名
需要手动处理冲突,在进行git add…git commit -m….
合并之后,只有当前分支的代码发生了合并,另外一个分支代码还是原样。
(5)git branch -d 分支名
删除分支
注:删除失败可能是上次任务没有完全提交,-D表示强制删除
远程(共享)仓库:
用户A和用户B等多人如果要协同开发,连接两者之间的代码,需要一个共享仓库。
创建一个共享仓库:目录名必须以.git为结尾,进入该文件夹后使用(1)gitinit --bare
创建一个”裸”仓库
(2)git push 共享仓库的地址 分支名
将本地仓库的该分支放入共享仓库中
(3)git pull 共享仓库的地址 分支名
将共享仓库中的某分支提取出来放入本地仓库中
(4)git remote add 共享仓库重命名 共享仓库的地址
有时共享仓库地址名称太长,可以给它另命名
(5)git clone 共享仓库的地址 复制到的文件夹名
克隆共享仓库中的数据到命名的文件夹中
注:git clone = mkdir + cd + git init + git pull + git remote add origin …
github
上一点已知git是分布式版本控制系统(版本控制工具),而github则是基于git的代码托管平台。
通过该平台,同一个项目可以多人协同合作,将代码放在该远程仓库上;还可以将自己的代码共享给所有开发者,其它开发者也可以对你的代码提出建议pull request;