Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。发明人就是大名鼎鼎的Linus ,发明初衷为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。需要知道的是Git底层文件验证采用的是SHA-1,(SHA-1)哈希算法可以被用来验证文件。哈希算法有如下特点: 1、不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定 2、哈希算法确定,输入数据确定,输出数据能够保证不变 3、哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大 4、哈希算法不可逆
- 大部分在本地完成,不用联网
- 完整性保证
- 尽可能添加数据而不是删除和修改数据
- 分支操作非常快速刘闯
- 和Linux命令全面兼容
工作区:写代码的地方 暂存区: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 文件名:本地库和历史版本比较,不带文件名是比较多个文件
1、什么是分支 版本控制中, 使用多条分支同时推进多个任务 2、查看所有分支 git branch -v 3、创建分支 git branch 分支名 4、切换分支 gitcheckout 分支名 5、合并分支 第一步L切换到被合并分支 第二步:执行git merge 分支名 6、解决分支冲突 删掉相关标记 git add 文件名:标记为已解决 git commit -m“”“”:提交解决冲突 注意:提交的时候不能带文件名
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 别名 分支名
这个可以直接访问仓库,对应资源可以下载 https://github.com/freestylefly/javaStudy/tree/master/Git%26GitHub
如果有想要学习资源的话欢迎评论咨询!