git
是什么
简单来说也就是版本管理器.
版本管理器,基本上也分为两种:
1.集中式管理:代表svn
2.分布式管理:代表git
集中式管理(svn)会出现问题-单点故障
单点故障:把所有版本,所有工作区代码,放到一块管理,统一管理器如果出现问题,直接全部崩盘.
分布式管理(git)
很好的解决了单点故障问题,快照式处理,每个计算器都是一个单独的管理器,都有全部版本,工作区代码,如果有一方出现问题,不会影响到其他人,直接向另一个管理器复制,下载代码,解决
git的优势
1.大部分操作都在本地完成,不需要联网
2.完整性保证
3.尽可能添加数据而不是删除修改数据
4.分支操作非常快捷
5.与linux命令全面兼容
git的解构
工作区,=>git add 暂存区,=> git commit本地库
解释:
1.工作区,编写代码
2.本地库,历史版本
3.暂存区临时存储
下载git
前往官网
http://git-scm.com/
1.点击
2.选择自己电脑所对应的配置
3.下载到桌面,点开,选择去哪个网盘
4.选择默认就好
5.默认不用管它
6.选择自己所用编辑器打开
7.选择使用
8.选择自己对应的库
9.选着换行兼容问题
10.选着命令行显示
11.安装默认
git命令
mkdir----创建文档
git init-----创建本地框
ll检测
ls _lA检测隐藏目录
cd ~ 跳转根部目录
pwd 检查自己所处哪个目录
设置签名 项目级别/厂库级别 只在当前库范围有效
git config user.name tom_pro
git config user.email mzc_heihei@.atguigu.com
cat .gitconfig//检查签名
设置签名 系统用户级别:登录当前操作系统的用户范围
git config --global user.name tom_pro
git config --global user.email mzc_heihei@.atguigu.com
cat .git/config //检查签名
把文件放到占存区
git add 文件名 //添加文件到暂存区
git status //工作区,缓存区的状态
把文件从暂存区和工作区删除
git rm //将文件从暂存区和工作区中删除
git rm hei.txt //从暂存区和工作区中删除 hei.txt 文件
git rm -f hei.txt //如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。
//强行从暂存区和工作区中删除修改后的 hie.txt 文件
git rm --cached //如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除
git rm --cached hie.txt //从暂存区中删除 hei.txt 文件
git commit 命令将暂存区内容添加到本地仓库中
git commit -m '一些备注信息' //提交到本地厂库
git commit 文件名 //会跳转到编辑器
git log 查看历史提交纪录
git log --oneline//简介版
git log --graph //选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项
git log --reverse //参数来逆向显示所有日志
git reflog //移动到哪个版本需要的步数[索引]
git reset --hard跳转版本
git reset --hard [版本对应的号] 跳转版本
git reset --hard HEAD^跳转版本有几个 ^ 跳转几下
git reset --hard HEAD~3 数字是几跳转几下
git diff
git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。
git diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件对区别。
git diff 有两个主要的应用场景
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
使用分支的好处
1.同时,可以推进多个功能的开发,提高开发效率
2.各个分支在开发过程中,如果某一个分支开发失败不会对其他分支产生影响
git branch分支命令
git branch -v //查看所有分支
git branch 分支名 //创建分支
git checkout 分支名 //切换分支
git merge 分支名 //合并分支
合并分支时,两个分支同时修改了相同的内容会产生分支冲突
!如何解决分支冲突
1.编辑合并的文件,删除里面的特殊符号,
2.把文件修改至满意保存退出
3.git add 文件名
4.git commit -m “日志信息”
!注意:这时的commit一定不能带具体文件名
远程库git命令操作
git remote add 别名 远程库地址 //给远程库写别名
git remote -v //查看远程库操作信息