一、写在前面
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。发明人就是大名鼎鼎的Linus ,发明初衷为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。需要知道的是Git底层文件验证采用的是SHA-1,(SHA-1)哈希算法可以被用来验证文件。哈希算法有如下特点:
1、不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
2、哈希算法确定,输入数据确定,输出数据能够保证不变
3、哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
4、哈希算法不可逆
二、Git的优势
三、Git的基本结构
工作区:写代码的地方
暂存区:Git临时存储的地方
本地库:Git存放的历史版本
四、本地库和远程库
局域网:GitLab
外网:GitHub、码云
1、团队内部协作:
push:本地库提交到远程库
pull:拉取远程库代码到本地库,包括两个操作fetch(拉取)+merge(合并)拉取并合并,就是将远程库的代码更新到本地库
clone:将远程库所有东西下载到本地,并且建立本地库
2、跨团队协作
如需要在被人的GitHub仓库提交自己的修改,跨团队协作
fork:复制一份别人的代码在自己的远程库
pull request:拉取请求,发送自己的修改
merge:合并保存
五、本地库初始化
”命令:git init
注意:.git目录不能删除
六、设置签名
1、作用:在你提交代码的时候作为一个标识,代表这是你提交的代码,这里的签名和远程库上面的账号和密码没有任何关系
2、命令
命令
git comfig user.name 你的签名
git config user.email 你的邮箱
3、注意:签名分两种:
项目级别:也叫仓库级别,仅在当前本地库范围内有效,git gonfig命令
系统级别:当前操作系统的用户有效,git config --global
**优先级:就近原则
4、查看签名
仓库级别:
cat .git/config
系统级别:
cat `/.gitconfig
七、常用命令
git status:查看工作区、暂存区状态
git add 文件名:添加文件到暂存区
git add *:添加所有文件到暂存区
git rm --cached 文件名:将暂存区恢复到工作区
git commit -m"提交日志" 文件名:提交文件到本地库
git commit -a -m"提交日志" :添加所有文件到本地库
八、历史记录
1、查看历史记录
git log
git reflog 简洁的查看历史记录,HEAD值简单化
2、多层显示控制方式
空格向下切换
b向上翻页
q退出
九、版本前进后退
1、基于索引值操作
git reset --hard 索引值
git help 具体命令:查看帮助
2、reset命令的三个参数对比
–sert:仅仅在本地库移动HEAD指针
–mixed:从本地库移动指针,重置暂存区
–hard:本地库移动指针,重置暂存区,重置工作区
十、删除后找回
一定要明确一点就是,你从本地库或者工作区删除了文件,一定要将删除的操作add和commit 到本地库才可以找回相关文件。
git reset–hard 指针位置
十一、比较文件差异
git diff:工作区和暂存区比较
git diff HEAD 文件名:本地库和历史版本比较,不带文件名是比较多个文件
十二、git的分支
1、什么是分支
版本控制中, 使用多条分支同时推进多个任务
2、查看所有分支
git branch -v
3、创建分支
git branch 分支名
4、切换分支
gitcheckout 分支名
5、合并分支
第一步L切换到被合并分支
第二步:执行git merge 分支名
6、解决分支冲突
删掉相关标记
git add 文件名:标记为已解决
git commit -m“”“”:提交解决冲突
注意:提交的时候不能带文件名
十三、GitHub
1、给远程库URL新建别名
git remote add 别名 远程仓库URL
2、查看远程仓库地址别名
git remote -v
3、推送到远程库
git push 别名 分支名
4、克隆远程仓库内容到本地
git clone 远程地址别名
注意:克隆会晚会智能的把远程库下载到本地,创建origin远程地址的别名,并且会初始化本地库
5、抓取:将远程分支放到本地
git fetch 别名 分支名
6、合并
将远程分支合并到本地库
git merge 悲鸣/分支名
7、抓取并合并
git pull 别名 分支名
十四、ssh免密登录和eclipse下的git操作
这个可以直接访问仓库,对应资源可以下载
github.com/freestylefl…
十五、写在最后
如果有想要学习资源的话欢迎评论咨询!