版本控制
SVN和Git在版本管理的区别

版本控制工具
集中式版本控制工具:
**SVN** CVS VSS

缺点:客户机保存的只是当前的状态 如果服务器损坏 版本历史全部丢失——单点故障
分布式版本控制工具:
Git Mercurial Bazaar Darcs

任何人都有全部的数据 互相可以传数据——避免了单点故障
Git的简介
Git的结构

Git和代码托管中心
代码托管中心的任务:维护远程库
局域网环境下:
gitlab服务器
外网环境下:
GitHub
码云
本地库和远程库交互的方式
团队内部协作

跨团队协作

Git命令行操作
本地库操作
1.本地库初始化
命令:git init
效果:
注意:.git目录中存放的是本地库相关的子目录和文件 不要删除 也不要胡乱修改
2.设置签名
作用:区分不同开发人员的身份
命令:
项目级别、仓库级别:仅在当前本地库范围内有效
git config
信息保存的位置:./.git/config 文件

系统用户级别:登录当前操作系统的用户范围
git config --global
信息保存的位置:~/.gitconfig文件

优先级:就近原则 项目级别优先级大于系统用户级别 二者都有采用项目级别;如果只有系统用户级别签名 就用系统用户级别;二者都没有的情况是不允许的
远程库操作
添加提交以及查看状态操作

文件内容

提交成功后用status

对文件内容进行修改以后的提交

1 file changed 1 insertion(+)——> 修改了一个文件 改的是一行
基本操作
1.状态查看操作:
git status
查看工作区、暂存区的状态
2.添加操作:
git add[file name]
将工作区的“新建和修改”添加到暂存区
3.提交操作:
git commit -m “commit message”[file name]
将暂存区的内容提交到本地库

4.查看历史记录
前进和后退
git log——查看当前历史版本记录

多屏显示控制方式
空格——向下翻页
b——向上翻页
q——退出
git log对我们来说显示的太多了 简化
git log --pretty=oneline 或者 git log --oneline(简写)——显示内容有差别

git reflog——里面的HEAD@{移动到当前版本需要多少步}

1.基于索引值前进后退
基于索引值前进后退的原理

是有个head指针能够指向现在的版本
后退 git reset --hard HEAD前面的序号

前进也是一样

2.用^和~符号进行后退(不能前进)

注意git reflog显示全部版本 git log --onelinez只显示过去版本



5.删除文件找回
前提:删除前 文件存在的状态提交到了本地库
操作:git resret --hard[指针位置]
删除操作已经提交到本地库 指针位置指向历史纪录
删除操作尚未提交到本地库 指针位置使用HEAD
6.比较文件差异

Git分支
在版本控制过程中 使用多条线同时推进多个任务
hot-fix用来更改

创建分支
git branch [分支名]

查看分支
git branch -v
切换分支
git checkout


合并分支
在分支上对文件good.txt进行更改以后提交到分支
可以看到hot_fix分支的版本比master提前(领先一个版本 原来是一样的)

注意 要想要把hot_fix上的变动合并到master分支上 就必须要在master分支上进行操作
step1.切换到接受修改的分支上
step2.执行merge命令

解决冲突

当多个分支同时进行同一个地方的修改的时候 此时合并就回产生冲突

git不知道要用哪一种更改 交给我们自己决定
当我们在文件中更改好 确定修改以后

解决冲突


407

被折叠的 条评论
为什么被折叠?



