Git
git一个分布式的版本控制管理系统;
版本控制:所谓版本控制就是版本迭代;
主流的版本控制管理工具有以下几种:
-
git、svn、cvs、vss、tfs、visual studio online等;
Git Bash: Unix与Linux的风格的命令行,推荐使用;
Git CMP:windons风格的命令行;
Git GUI:图形界面的Git;
git配置:
命令:
git config -l 查看git所有的配置;
git config --system --list 查看系统中git的配置;
git config --global --list 查看自己配置配置;
git config --global user.name "设置自己的用户名" (这步操作是安装git之后,必须配置的)
git config --global user.email "设置自己的邮箱" (这步操作是安装git之后,必须配置的)
Git工作原理:
git有四个工作区域,本地三个,远程一个,分别是:
本地:工作目录(Working Directory)、暂存区(Satge / index)、资源库(Repository / Git Disectory)
远程:Git仓库
Git向远程仓库推送版本数据的流程:
三个命令:git add 、git commit 、git push
首先在本地的工作目录,通过命令git add flies把文件存放在暂存区,然后git commit 提交到本地仓库,最后通过命令git push把数据推送至远程仓库当中;
在使用git commit提交项目到本地时,若不想提交了,可使用git reset进行数据回滚,
在暂存区将数据重新放回本地,使用命令git checkout即可;
Git从远程仓库下载版本数据至本地的流程:
三个命令:git pull 或 git clone / git fetch 、git checkout
只需要使用命令git pull即可;
版本控制分类:
-
本地版本控制:
记录文件的每次更新,可以对每个版本一个快照,
或者是记录补丁文件,只适合于个人使用;
-
集中式版本控制:
将所有的版本数据集中保存于服务器上,协同开发者从服务器上同步更新或者上次修改;
-
分布式版本控制:
将所有版本的数据都同步到每个用户,这样就可以离线查看所有的版本信息,同时可离线提交,只要在联网时push到服务器或其他用户上即可,由于每个用户都保存了所有的版本信息,这要就增加了本地的存储空间,不过,在出现故障时,只要有其中一个用户的设备没有问题,那就可以恢复原来的所有数据;
本地仓库的搭建
仓库搭建有两种方式:
-
创建一个全新的仓库;
使用git init 就会创建一个.git的隐藏目录;
该.git目录包含了所有的版本信息;
-
在克隆远程仓库;
使用git clone 克隆远程仓库,克隆后的仓库和远程仓库的文件完成一致;
使用Git Bash Here提交项目
-
打开Git Bash Here
-
需要将路径转到当前项目下;
-
输入命令:git add .
-
输入命令:git status
查看文件的状态
-
输入命令:git commit -m "描述信息"
-
输入命令:git push origin master
提交时若发生以下错误:
可以进行以下步骤:
-
将远程仓库中的项目拉下来进行合并;
git pull --rebase origin master
2.再次把项目提交push到远程仓库中;
git push -u origin master
git的卸载
-
首先检查环境变量是否存在与git相关的配置,然后对其进行删除;
-
在控制面版中的程序中卸载git即可;
git命令
git add [flie] 添加文件至暂存区
git status 查看文件状态;
git commit -m 将暂存区文件添加到本地仓库, -m 为提交信息,可以在后面编写描述信息;
git push origin master 将本地仓库目录推送至远程仓库,
origin 代表当前用户,master代表主分支;
git pull 从远程仓库拉去项目;
git clone [url] 从远程仓库克隆项目;
git checkout 将暂存区文件退回至本地工作区;
git init 初始化目录;
git分支命令:
git branch 列出所有本地分支;
git branch -r 列出所有远程分支;
git branch [branch-name] 新建一个分支,但依然停留在当前分支;
git checkout -b [branch-name] 新建一个分支,并且切换到该分支下;
git merge [branch-name] 将当前分支与指导分支进行合并;
git branch -d [branch-name] 删除分支;
删除远程分支:
git push origin --delete [branch-name]
git branch -dr [branch-name]
忽略文件
有时候,我们并不想把所有的项目都纳入版本控制当中,比如一些数据库文件、临时文件等;
这个时候,我们就可以对这些文件进行过滤,忽略;
在主项目下新建一个名为 .gitignore 的文件;
但一般在使用开发工具(IDEA)创建项目时,都会默认创建 。gitignore 文件;
该文件的作用就是用于过滤某个不想被纳入到版本控制的文件;
-
以 # 开头的为注释;
-
可以使用linux通配符;
* 代表任意多个字符;
? 代表一个字符;
[abc] 代表可选字符范围;
({string1,string2,...})代表可选的字符串;
-
! 该符号若使用在名称前面,表示例外规则,将不被忽略;
-
/ 该符号若在名称前面,表示忽略此目录下的文件,但不包括子目录;
-
/ 该符号若在名称后面,表示忽略此目录下的子目录,而非文件(默认文件或目录都忽略)
例如:
# 为注释
*.txt #忽略所有以.txt结尾的文件
!hello.txt #hello.txt文件除外
/temp #仅忽略项目根目录下的TODO文件,不包含其他目录remp
build/ #忽略build目录下的所有文件
doc/*.txt #忽略doc目录下所有以.txt结尾的文件,但不包括子目录下的.txt文件