c 做网站怎么发布,如何做网站导航,crm系统和erp的区别,分栏型网站日升时奋斗#xff0c;日落时自省 目录
1、Git安装
1.1、创建git本地仓库
1.2、配置Git
1.3、认识Git内部区分
2、Git应用操作
2.1、添加文件
2.2、查看日志
2.3、查看修改信息
2.4、查看添加信息
3、版本回退
4、撤销修改
4.1、工作区撤销
4.2、已经add#xf… 日升时奋斗日落时自省 目录
1、Git安装
1.1、创建git本地仓库
1.2、配置Git
1.3、认识Git内部区分
2、Git应用操作
2.1、添加文件
2.2、查看日志
2.3、查看修改信息
2.4、查看添加信息
3、版本回退
4、撤销修改
4.1、工作区撤销
4.2、已经add但没有commit
4.3、已经add也commit
4.4、误删文件
4.4.1、删除工作区文件
4.4.2、删除版本库中的文件
5、分支管理
5.1、创建分支
5.2、分支切换
5.3、合并分支
5.4、删除分支
5.5、合并冲突
5.6、分支管理策略
5.6.1、分支策略
5.7、bug分支
6、远程操作
6.1、创建远程仓库
6.2、克隆远程仓库
6.3、向远程仓库推送
6.4、拉取远程仓库
6.5、配置Git
6.5.1、忽略特殊文件
7、标签管理
7.1、创建标签
7.2、删除标签
7.3、标签推送到远程
8、扩展
8.1、拉取远程仓库
8.2、删除远程仓库 注本文图片较多比较基础耐心观看如果内容有问题请留言我尽快回复
当前分为以下三个版本的内容还有一个没有列举出来分布式版本控制系统
Git版本管理自由进⾏版本回退、撤销、修改等Git操作⽅式
Git分⽀管理从分⽀创建切换合并删除的整个⽣命周期灵活进⾏各种场景下的分⽀管理
Git远程仓库与本地仓库结合版本管理与分⽀管理做到基于分⽀级的个⼈级开发
每次甲方可能会让我们乙方改多次版本那我们就每次版本都会有所保存以及修改内容的查询
Git就是为了解决版本控制
1、Git安装
Linux系统大多使用两种centos和Ubuntu
1centos
可以先看自己的linux服务器上是否装有git 输入命令git 显示command not found 出现像上的结果那就是linux没有安装git 安装git命令yum -y install git 安装好后可以产看安装版本 查看版本命令git --version 2Ubuntu
可以先看自己的linux服务器上是否装有git 输入命令git 显示command ‘git’ not found,but can be installed with 安装git apt-get install git -y 查看版本git --version 1.1、创建git本地仓库
仓库是进行版本控制的一个文件目录所以使用过giteee的友友们都是在一个文件夹中创建一个仓库
这里我们先创建文件夹我在root目录下创建一个gicode文件目录 创建目录命令mkdir gitcode 其实刚创建的文件是看不见的查看后也是空空如也 创建一个Git的本地仓库 命令git init .git目录是Git用来跟踪管理仓库的这里面的内容不要手动修改修改乱了就会破坏仓库
想查看git中详细内容 我们这里使用命令tree -a 需要安装tree 1.2、配置Git
当安装Git后首先要做的事情设置你的用户名称和e-mail地址配置是连接你自己要连接的仓库的账号此处就可以拿gitee中的用户名和邮箱进行连接操作 修改用户名命令git config [--global] user.name 输入你的用户名 修改email命令git config [--global] user.email 输入你的email 查看的仓库详细信息命令git config -l 注这里的--global加上是针对所有仓库都能看见如果不加当前设置只是针对当前仓库创建仓库也不一定就是这一个绑定的仓库还会有其他的所以这里看着自己的需求
1.3、认识Git内部区分
区域分为三个区域工作区、暂存区、版本库
首先概念上理解
工作区在电脑上要写代码或者文件的目录
暂存区英文叫做stage或 index 一般存放在.git目录下的index文件中暂存区也叫做索引
版本库又名仓库英文名repository工作区有一个隐藏目录.git 它不算工作区而是Git版本库这个版本库里面的所有文件都可以被Git管理追踪历史或者再将来某个时刻可以还原 注HEAD是一个指针它指向当前所在的分支。每次提交都会创建一个新的commit对象这个对象包含了这次提交的所有更改。HEAD指针总是指向最新的commit对象也就是当前所在的分支的最新提交
工作区和版本库库是分开的但是都在一个目录下通过新建或粘贴目录的文件并不能称为向仓库新增文件仅仅是工作区新增文件必须通过使用git add 和 git commit命令才能将文件添加到仓库中进行管理
2、Git应用操作
2.1、添加文件
演示添加一个ReadMe文件先在工作区vim ReadMe 写一个文件内容
添加文件到暂存区 git add [file1] [file2] [file3]... 添加目录到暂存区 git add [dir] 从暂存区提交到本地库中git commit -m 辅助信息 注提交选项 -m 表示的就是做一个提交信息之后方便我们查看日志log的时候能知道对于这个文件是干什么的
1针对单个文件进行操作上传 2针对多个文件进行上传操作
注首先我们要工作区进行文件创建或者上传项目源码才能进git操作 2.2、查看日志
查看日志文件git log 如果只需要显示提交码 简介显示命令 git log --prettyoneline 显示成一行显示不在显示用户名和 邮箱其实主要是针对提交码
如果提交多次或者很久没有进行查看不知道当前最新提交文件是那个通过HEAD指针进行操作 注通过HEAD指针找到最近提交的位置查看位置获得提交码
object主要用于存储分支对应的提交记录。当您创建一个新的分支时Git会将该分支的提交记录存储在.git/objects目录下。当您切换到另一个分支时Git会将该分支的提交记录从.git/objects目录下移动到相应的目录中
使用命令ls .git/objects
推荐在linux系统上安装一个tree就能实现树形结构展示 2.3、查看修改信息
我们铜鼓日志log看到了对应很长一个字符串有数字又字符这就是每次提交的版本号我们能根据当前版本号知道针对这个文件都进行了那些操作 查看修改信息命令git cat-file -p 版本号 注这里的版本号进行复制就行了不需要手敲每次查看日志打印或看最近一次的日志就是使用HEAD指针进行查询 先通过查看日志找到需要的版本号git log 通过版本号查询相关信息git cat-file -p 版本号 再次查找这里的有tree 对应的版本号 就是针对所有文件展示的版本号
再次使用命令git cat-file -p 版本号tree对应的版本号 2.4、查看添加信息
本地仓库目录有文件进行修改但是没有不知道有没有进行添加当前查看使用 查看添加信息git status 最后这里友友们自行提交即可
这里还能查看修改那些内容在没有git add的时候 使用命令git diff 文件名 3、版本回退
git回退是针对版本控制的
版本回退命令git reset [--soft | --mixed | --hard] [HEAD]
[--soft | --mixed | --hard]:只能选择其一
--soft参数对于工作区和暂存区的内容不变只是将版本库回退到某个指定的版本
--mixed是默认选项使用时可以不用带该参数将暂存区的内容回退为指定提交版本内容工作区文件保持不变
--hard参数将暂存区与工作区都回退到指定版本切忌工作区有提交的代码不要使用这个命令因为工作区会回滚提交代码也就没有了所以--hard使用一定要谨慎使用
这里演示--hard 对应版本回退 先准备前置操作添加两个版本进行版本回退 开始进行回退 如果真的回退有问题在一定条件下是可以在找回来了但是如果太多指令过去了就可能真的找不到了
挽救命令git reflog 深度理解版本维护 4、撤销修改
4.1、工作区撤销
在工作区就是本地文件内容没有进行add可以自行进行修改添加和修改无非就是删减代码
但是如果已经添加了很多代码怎么办这里可以使用 命令git diff 文件名
能够产看你添加了那些代码 清楚工作区的修改工作区回退命令git checkout -- 文件名 4.2、已经add但没有commit 4.3、已经add也commit 4.4、误删文件
演示思路先删除文件--》git status进行检查--》文件确实删除了--》挽救文件--》
4.4.1、删除工作区文件
涉及找回命令git checkout -- 误删工作区的文件名 4.4.2、删除版本库中的文件
前面展示的只是删除工作区上的文件但是并没有完全删除这里需要的是删除整个文件包括仓库中的文件 使用仓库删除命令git rm 仓库文件名 进行提交删除命令git commit -m delete 5、分支管理
直接上图进行分支理解 在版本回退⾥你已经知道每次提交Git都把它们串成⼀条时间线这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前只有⼀条时间线在Git⾥这个分⽀叫主分⽀即master分⽀
5.1、创建分支
Git支持我们查看或者创建其他分支这里演示创建一个dev分支对应的命令为 查看分支git branch 创建分支git branch dev 注*表示的当前所在的分支这里master就是我们当前正在使用的分支所以master前面就有一个**就是HEAD指针指向位置
分支存储在路径.git/refs/heads
也可以查看版本号路径.git/refs/heads/* 当前分支图如下dev是刚刚创建一个的分支路径但是不是提交路径所以当前HEAD是不会改变的 5.2、分支切换
切换分支命令git checkout 分支名是的这里再一次看见了checkout 作用很多 *在那个分支前面当前就说明是操作那个分支 说明这里切换成功
这里再次修改文件操作ReadMe 看看有什么区别 注放心dev分支上的内容是一点没有少因为这两个压根不是一起的
dev分支经过一次提交了此时HEAD指针是在哪呢没错就是在dev分支新提交的ReadMe上 5.3、合并分支
master分支上是没有dev分支上的修改内容的dev就像我们的开发分支我们最后修改还是要终止与master分支上那我们就进行分支合并dev合并到master上
合并分支操作先切换到我们要合并的分支也就是主分支然后使用命令合并 分支 合并命令git merge 分支名当前分支为主分支 将分支名合并到当前所在分支 注git merge 命令⽤于合并指定分⽀到当前分⽀。合并后master就能看到dev分⽀提交的内容了 是不是感觉就像是master分支赶上dev分支分支合并也相当于add 和 commit一次一样HEAD指针是会跟着移动的
5.4、删除分支
合并完成后原来的分支也就没有用了那么原来创建dev分支也就可以被删除了提示当前处于分支是不能删除的需要切换到另一个分支才能进行删除 删除图解 5.5、合并冲突
合并也并不是总是能合成成功的也会遇见冲突问题
这里从新将dev1分支创建回来 创建分支git checkout -b dev1 -b 就是春创建后直接进入这个分支 以下分别修改文件是为了演示两个不同分支内容的修改代表两个人 这里看一下合并后的状态 日志查询以下 提交信息git log --graph --prettyoneline --abbrev-commit 注这里会显示很多之前的操作这里我只截取了我们分支合并操作的日志
这个日志怎么看图解一下给友友们看 合并也合并完了现在可以删除到dev1分支了
5.6、分支管理策略
前面我们进行的合并分支都是采用Fast forward模式这是默认的这个默认合并方法有一点不友好就是删除分支后查看分支历史时会丢掉分支信息看不出来最新提交的到底是merge进来的还是正常提交的这么说的原因就是合并冲突的时候我们手动修改后会再次进行提交
刚刚的日志友友们也看见了
这里演示强制禁用Fast forward模式那就需要重新提交一次 强制禁用Fast forward模式合并命令: git merge --no-ff -m 日志 分支名 前置合并操作已经执行结束下面来看日志打印 提示这里确实看着太明显这里直接说结论禁⽤ Fast forward 模式后合并会创建⼀个新的 commit 所以加上 -m 参数把描述写进去这就是为啥我们能看见原因
在合并分⽀时加上 --no-ff 参数就可以⽤普通模式合并合并后的历史有分⽀能看出来曾 经做过合并⽽ fast forward 合并就看不出来曾经做过合并
5.6.1、分支策略
分支就是为了控制版本的多人合作每个人都有自己的分支时不时地往dev分支上合并就可以了master分支为主分支dev开发分支michael自己的分支 5.7、bug分支
假如我们现在正在dev2 分⽀上进⾏开发开发到⼀半突然发现 master 分⽀上⾯有bug需要解决。在Git中每个bug都可以通过⼀个新的临时分⽀来修复修复后合并分⽀然后将临时分⽀删除 6、远程操作
我们日常都是为了进行模块化操作的也就是各自干各自的事情远程仓库就是为了便利操作项目时的所有使用者针对这个“服务器”肯定是24小时都在运行的便于我们拿去第一手资料和推送第一手资料运行git的服务器是可以我们自己搭建的当前能拿现成的肯定是不会去自己搭建的github不就是嘛一个森罗万象的网络github是国外网站访问速度比较慢这里就使用gitee来进行代码托管创建一个进行git测试的仓库
6.1、创建远程仓库
那就从建仓库开始一步一步来按着提示来就行 注这里只能选择私有创建后可以再管理处设置为公有空仓库不能设置为公有
这里就拿私有来展示效果友友们想的话可以设置为公有
6.2、克隆远程仓库
创建仓库后点击创建的仓库可以看见对对应仓库路径克隆到本地 注我这里就创建一个gitremote的目录进行克隆克隆的就是我们创建的仓库命名就是参控仓库名
克隆命令git clone 远程仓库路径 这里选择的是http路径进行复制的需要输入用户和密码
用户就是后面内容密码就是登录密码 查看一下远程仓库的名称
查看远程仓库命令git remote
查看远程仓库详细命令git remote -v 6.3、向远程仓库推送
本地要有新的文件才能向远程仓库进行推送这里创建文件-》写文件-》文件推送
在这里之前再次提起 绑定信息我们之前绑定过的就是用户和邮箱如果绑定不对的话就推送不了
设置用户命令git config [--global] user.name 请输入你的用户名 就是gitee上的用户名
设置邮箱命令git config [--global] user.email 请输入你的邮箱
有邮箱在这里如果这里有的话直接复制就行 本地创建的文件要先进行添加并提交到版本库中然后再进行推送 推送命令 git push 远程主机名 本地分支名:远程分支名 如果本地分⽀名与远程分⽀名相同则可以省略冒号 推送命令git push 远程主机名 本地分支名 注不知道当前分支是什么使用命令git branch 当前分支进行查询 看一下远程仓库本来可是什么都没有的 6.4、拉取远程仓库
这里我们就在file.txt中修改下内容后进行拉取下来
这里file.txt文件我们就添加一行hello git 远程仓库是要领取于本地仓库一个版本为了使本地仓库保持最新版本这是我们需要拉取远端代码合并到本地 拉取命令git pull 远程主机名 远程分支名:本地分支名 如果远程分支是与当前分支合并则冒号后面的部分可以省略 拉取命令git pull 远程主机名 远程分支名 注当前我们已经存在文件了内容不为空现在可以将仓库设置为公有的 6.5、配置Git
6.5.1、忽略特殊文件
在创建库的时候还有很多的设置如果没有开启可以在工作区开启
这里我再次克隆因为前面把仓库删了这次是因为有内容克隆路径需要点击进行这里可选路径也很多这次我们采取的HTTPS进行克隆 进行克隆操作 克隆命令git clone (复制过来的HTTPS路径) 我仓库的名字叫test-Git克隆过来后就都是小写一个test-git文件仓库 在工作区创建文件是文件会生成但是git是不会提示的当前不需要git提交给版本库 但是有些文件你虽然过滤掉了但是你还想添加给远程此时可以强行添加如果我们之前添加错了文件格式那现在可以检查了 检查命令git check-ignore -v 文件 强行提交git add -f 文件名 刷新一下gitee上的仓库就不难看到a.so文件已经被推送上去了 7、标签管理
commit最后一次提交是一次完结也是具有里程碑意义的但是为了方便管理标签就比较友好的做到这一点每次commit最后一次都可以进行“打标签” 表示一个版本commit id 是不那么好记住的
7.1、创建标签 打标签命令git tag 标签 产看标签命令git tag 给指定的commit id 进行打标签 注这里的颜色提示是Ubuntu系统初识的设置Centos7是不显示的但是可以自己去设置
7.2、删除标签 删除标签的命令git tag -d 标签 假如这里的v0.9标签打错了进行删除就是添加一个 -d 选项 比较简单就不在做解释 7.3、标签推送到远程 推送命令git push origin 标签 远程仓库内容刷新后可见 8、扩展
gitee上创建一个分支本地把分支拉下来看看仓库都有那些分支
创建gitee分支 现在开始拉取分支
8.1、拉取远程仓库
涉及命令 查看远程仓库命令git branch -r (这里的查询不会实时更新所以有可能仓库已删或者新增) 拉取命令git pull 拉取的是远程仓库不是本地仓库就有的 创建并连接远程仓库 git checkout -b 本地分支名称 远程仓库/远程分支 拉取命令 8.2、删除远程仓库
远程仓库分支已经消失后本地查看远程仓库分支是还是存在的
这里先删除远程仓库分支dev 删除刷新后就已经没有dev分支了 涉及命令 查看本地和远程所有分支命令git branh -a 查看本地与远程对应分支命令git remote show origin 删除本地存储远程删除的分支git remote prune origin 本地分支与远程分支对应 删除本地对应远程仓库已经删除的分支