GIT
1.window安装
http://git-scm.com/download/win下载Git客户端软件,和普通软件安装方式一样。
2.Linux安装
CentOS发行版:sudo yum install git
Ubuntu发行版:sudo apt-get install git
3.Mac安装
打开Terminal直接输入git命令,会自动提示,按提示引导安装即可。
4.TortoiseGit安装
直接搜索TortoiseGit下载安装即可
5.TortoiseGit函数
汉化包地址: https://tortoisegit.org/download/
找到对应版本 对应位数的汉化包下载安装即可
汉化之后可以是使用中文界面
Git工作原理
四个状态---三个工作区
下面来说一说四个状态以及三个工作区
四个状态
1.未追踪(untracked)
2.已提交(committed)
该文件已经被git管理起来,接下来对该文件进行相关操作就可以实现版本控制的效果
3.已修改(modified)
某个文件已经被提交到暂存区过了,如果对该文件进行修改,该文件的状态就是已修改
4.已暂存(staged)
某个文件已经被提交暂存区了
三个工作区
三个工作区域的概念
1、工作目录
工作目录是对项目的某个版本独立提取出来的内容,这些从Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改
2、暂存区域
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在Git仓库目录中,有时候也会被称为“索引(index)”,不过一般说法还是叫暂存区域
3、Git仓库
Git仓库目录是Git用来保存项目的元数据和对象数据库的地方,这是Git中最重要的部分,从其他计算机克隆仓库时,拷贝的就是这里的数据
Git工作图示:
基本的Git工作流程
1、在工作目录中修改文件 2、暂存文件,将文件的快照放入暂存区域 3、提交文件,找到暂存区域的文件,将快照永久性存储到Git仓库目录。
Git本地仓库
Git本地仓库指的是开发者计算机中的仓库
一、关于启动Git以及相关命令
1、命令行方式:任意目录(建议开发根目录)右键=>Git Bash Here
2、配置用户
命令行:git config --global 其他
配置用户的意义在于记录开发者信息,以便在版本控制记录开发者的操作行为
git config --global user.name "自己的名字"
git config --global user.email "自己邮箱地址"
--global 配置当前用户所有仓库
注:配置用户只需要执行1次,可以重复使用
3、初始化仓库
git init
如果我们想要利用git进行版本控制,需要将现有项目初始化为一个仓库,或者将一个已有的使用git进行版本控制的仓库克隆到本地
git init会在当前项目目录中创建一个名为.git的隐藏目录,这个目录包含了暂存区和仓库两个区域,有了这个隐藏目录就可以使用git来管理项目了,通过ls-al可以查看
4、查看文件状态
git status
初始化仓库便可以进行开发了,进入到刚刚创建好并初始化为仓库的目录,添加我们开发需要的文件,注:git会忽略空的目录
5、添加文件到暂存区
git add
可以将一个未追踪的/没有使用git进行管理,已创建/修改的文件放入暂存区
添加单个文件到暂存区 git add file_name
添加所有文件到暂存区 git add *
6、将暂存区的内容放入本地主仓库
git commit -m 备注信息
如果不输入备注信息会提示一个vi编辑器,在vi编辑器中提示输入备注信息
每一次提交到本地仓库都必须输入备注信息
vi编辑器是linux系统的文本编辑器,使用的方式可以参考以上教程
7、查看历史提交
git log
显示结果有:某一次提交的唯一标记,提交本人的信息,提交的日期
commit b0092e2787971f7d0cb656da165b9edc3c25cb01 (HEAD -> master) Author: gaohui1994 <aaa@qq.com> Date: Fri May 25 00:25:19 2018 +0800 第二次提交: commit 59100dca39449d9a9e4008aad8f2283ced828134 Author: gaohui1994 <aaa@qq.com> Date: Fri May 25 00:22:21 2018 +0800
第一次提交
如果你觉得上述展示的结果内容繁琐的话,可以使用以下命令简化输入结果
git log --pretty=oneline
b0092e2787971f7d0cb656da165b9edc3c25cb01 (HEAD -> master) 第二次提交:
59100dca39449d9a9e4008aad8f2283ced828134 第一次提交
上述一长串数字是通过sha1加密算法生成的版本的id号
版本id号在进行代码检出的时候会用到
8、暂存区检出
git checkout -- 文件名
如果一个文件已经存放到暂存区,希望从暂存区恢复到修改前的状态
将文件从暂存区取出,替换当前本地的文件
可以将文件恢复到修改之前的状态
git checkout 文件名/分支切换---后期会有相关介绍
git reset HEND 文件名
将已经添加到暂存区的,并且该文件没有被修改过文件,可以从暂存区取出
只是将文件从暂存区取出,但是并不使用(也就是将暂存区的修改退回到工作区)
9、本地仓库检出
git reset --hard 提交的版本号
将文件从本地仓库中恢复,取出仓库中的文件替换工作目录中的文件,相关的版本号通过git log查看
回退之后,该版本号之后的提交版本就失效了,这种操作是不可逆的 慎重操作
补救措施:世上没有后悔药,在git中,总有后悔药吃,可以使用git reflog获取相关的提交/回退记录,然后找到对应的id,回到对应的版本即可
git工作流图示
分支
在初始化操作的时候,会自动创建一个master分支,并且有HEND指针指向其末端,master分支指向已经提交到仓库的文件的id
指针HEND用来指示当前处于哪个分支的哪个版本
git branch 查看当前的仓库中的所有的分支,*表示处于当前的哪一个分支
新建的分支会继承父分支的所有的提交历史
1.git branch branchName-------创建一个新的分支
创建新分支后,在当前新分支下进行的操作不会影响到其他分支的内容(不包括继承的父分支的内容)
2.git checkout branchName------切换到指定的分支
切换分之后,HEND会指向切换后的分支的末端,HEND会伴随着每次文件提交到仓库二移动
3.git merge branchName---------合并指定的分支到当前的繁殖
在每个子功能功能开发完成之后,可以进行分支的合并
4.git branch -d branchName-----删除指定的分支
在分支合并之后,可以删除没用的分支
5.git log -g--git branch branchName id-----恢复已经删除的分支
git log:获取提交的记录,截止到回滚的位置,获取不到自回滚位置之后的提交记录
git log --online:获取简洁版的日志信息(获取的内容和git log一样)
git reflog:获取所有的更改记录(操作日志)
git log -g:获取所有的提交记录,不会受到回滚的影响,会进入vim/vi
创建远程共享仓库
创建共享仓库的存储目录
是一个以.git结尾的目录,进入目录并初始化
a)mkdir spare.git--------创建一个以.git结尾的目录
b)cd spare.git------------进入这个目录
c)git init --bare----------初始化一个裸仓(--bare)
这是创建的仓库是一个空的仓库,并且不允许进行任何操作
向共享仓库同步共享内容
a)git push url master-----------在共享内容的目录下进行,将当前目录下的内容共享到spare.git中
从共享仓库中取出内容存放到当前目
a)git clone url(目录名称)-------------url指的是共享仓库的目录
b)git clone url(目录名称/分支名称)---------url指的是共享仓库的目录
c)git pull url master----------------
远程地址名替换
a)git remote add origin [email protected]:Botue/repo.git
这样origin就代表 [email protected]:Botue/repo.git
强制解决冲突:在github中存在md文件,本地中不存在
a)$ git pull --rebase https://github.com/gaohui1994/git002.git master
b)$ git push https://github.com/gaohui1994/git002.git master
github账号注册
1、注册账号并完善资料
2、创建共享仓--New repository
3、填写仓库资料
4、共享仓库
5、生成**:在github上设置**(公钥),可以省去每次上传共享库文件时的重复登录验证的文件,还可以提高安全性
a)ssh-****** -t rsa 一路回车,得到.ssh文件夹
b)复制id-rsa.pub里面的内容,设置到github中的相应的页面上
GIT补充
配置用户信息
a) Git config -l ----------------------------------------查看配置信息
b) Git config --global .....---------------------------配置本地信息,应用于所有的目录
c) Git config ......................--------------------------配置本目录信息
文件的删除
a) Rm file---------------------------删除文件,不可恢复
b) Git rm file-----------------------删除文件,可以恢复,前提是文件已经提交到仓中,删除的是暂存区的文件
c) Rm -r file---------------------递归删除
d) Rm -f file---------------------规避错误信息,不显示错误的信息
e) Rm -rf file ------------------执行的是-r和-f的结合体
删除本地仓库和远程仓库中的文件
a) 先删除缓存区的文件,再提交到仓库
b) 先删除工作目录中的文件,再逐步提交到仓库
Git diff文件的差异对比
a) 将工作目录中的文件与暂存区的文件进行比较
rm -r file
a)递归删除
SSH提交
在push 到 [email protected]:eoooxy/git_test.git 这种远程仓库地址的时候, 会报一个错误
也就是使用以下命令
git push aaa@qq.com:eoooxy/git_test.git master
在这种提交的时候 使用的是 ssh ( Secure Shell) 在提交的时候需要配置 ssh
-----> 配置过程如下:
查看本地的ssk
cd ~/.ssh
$ cd ~/.ssh
$ ls
id_rsa id_rsa.pub known_hosts
清楚本地旧的ssh
rm -rf ......
生成新的ssh-key
ssh-****** -t rsa -C "aaa@qq.com"(请填你设置的邮箱地址)
复制pub-ssh-key
也就是复制公钥, 存放在 id_rsa.pub文件
查看 id_rsa.pub文件
cat id_rsa.pub
复制内容 ctrl+c
在github上设置
github官网 ----> 右上角展开 ----> setting ----> SSH and GpG keys -----> new ssh key
将上一步复制的 公钥 粘贴到这里
上一篇: Yii2 获取模块名、控制器名、方法名 [ 2.0 版本 ]
下一篇: php的各种获取路径的函数