Git史上最详细教程(详细图解)
目录
Git简介:
什么是Git,它有什么作用?
Git四个区域
?Git四个状态:
.gitignore忽略文件
格式规范:
glob模式的正则表达式:
?操作文件
?上传至云端服务器
远程连接:
从云端拉取项目
Git分支
常用命令:
Git简介:
什么是Git,它有什么作用?
Git简单来说就是代码版本控制系统,通过他可以进行多人开发同一个项目然后讲每个人的代码块合并完成一个大项目,还能控制代码版本记录等。
Git四个区域
- 工作区:处理工作的区域(即做项目打代码的区域)
- 暂存区:已完成的工作临时存放区域,等待被提交
- 本地仓库:存放数据的地方,但是还在本电脑上,若电脑存储空间损坏还是会造成代码消失
- Git远程仓库:最终的存放区域,即远程服务器,电脑存储空间损坏也不影响远程仓库数据
Git四个状态:
- 未跟踪:文件没有加入到git库中,不参与版本控制,使用git add变为暂存
- 已暂存:表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表
- 已修改:表示修改了文件,但还没将修改的结果放到暂存区
- 已提交:表示文件已经安全地保存在本地Git仓库
新建文件 —> 未跟踪(Untracked)
使用git add .或者git add ‘需要暂存文件名’ —> 已暂存(Staged)
使用git commit将文件放在本地仓库中 —> 已提交(Unmodified)
如果已经提交到本地仓库后修改了文件当前文件状态是 —> 已修改(Modified)
如果已经提交到本地仓库后删除了文件当前状态是 —> 未跟踪(Untracked)
注意:创建git文件之前就创建一个.gitignore用来忽略文件(忽略你不想上传的文件,里面可利用正则表达式)
.gitignore忽略文件
格式规范:
- 以#开头的是注释
- 以/结尾的是目录
- 以/开头防止递归
- 以!开头表示取反
- 可以使用glob模式进行文件和文件夹的匹配(glob指简化的正则表达式)
glob模式的正则表达式:
- 星号*匹配零个或多个任意字符
- [abc]匹配任何一个在方括号中的字符(此案例匹配一个a或匹配一个b或匹配一个c)
- 问号只匹配一个任意字符
- 在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有0到9的数字)
- 两个星号**表示匹配任意中间目录(比如a/**/z可以匹配a/z、a/b/c或a/b/c/z等)
# 忽略 index.css 这个文件
index.css# 忽略 test 目录下所有的文件
test/
操作文件
在项目根目录下利用git init命令创建git本地仓库(显示下面文件表示创建成功)
通过git status查看此目录下文件状态(git status -s简写形式)
上图红色表示文件未被跟踪
通过git add “文件名称”(指定文件放入暂存区) 或者git add .(表示当前所有文件放入暂存区)
绿色的A表示新添加到暂存区的文件
通过git commit -m"文件描述"上传至本地仓库
这说明已经将暂存区的文件传至到本地仓库中了
git commit -a -m“描述消息”这个命令可以跳过暂存区直接存储到本地仓库
我们将其中一个文件信息进行修改
我们修改了pro_01.html中的内容,红色M 表示修改过但没有放入暂存区
我们将修改的文件放入暂存区
绿色的M表示已将修改的文件放入了暂存区
通过git rm --cached 文件名称 移除Git仓库中对应的文件,保留工作区对应的文件
绿色D表示移除的文件,存在红色是因为只移除了本地仓库的文件,工作区的文件未被移除并且处于未被跟踪状态(通过git rm -f 文件名称 来同时移除本地仓库和工作区对应的文件)
通过git log查看所有提交历史(最近的排在最上面)
以上查看的无用信息太多可以用:
git log -2:查看最新两条历史
git log -2 --pretty=oneline:一行显示两条最新历史
git log -2 --oneline:与上个命令一样(对应提交唯一表识长度不一样,比上个命令更短)
git reflog --oneline:与上个命令一样(旧版本一行查看历史)
git log -2 --pretty=format:“%h | %an | %s”:%h提交的简写哈希值 %an作者名 %ar作者修订日期 %s提交说明
通过git reset --hard来跳转到指定历史(CommitID就是提交唯一标识即上图黄色部分)
回到了修改了pro_01.html历史上了,文件夹中删除的pro_01.html又回来了
上传至云端服务器
远程连接:
本文章用gitee做示例,相同的服务器还github等(国外的稍微有点卡)
- 先创建一个服务器账号点击新建仓库,创建一个新的云端仓库
建立远程链接
说明已经将项目传至远程服务器中
注意:一定要将文件保存至本地仓库,不然传不上远程服务器
上图说明已经上传至远程服务器
从云端拉取项目
拉取远程项目是需在文件内有.git文件即Git本地仓库
git pull命令从远程拉取(远程最新代码),git clone也能从远程克隆下来
Git分支
先写下分支常用命令,具体操作步骤及图解随后和密钥一同推出
常用命令:
git branch:查看分支,带*表示当前所处分支
git branch 分支名称:创建分支,只创建不使用
git checkout 分支名称:切换分支
git checkout -b分支名称:创建并切换分支
git merge 分支名称:合并分支(将c合并给a,需要在a分支上运行命令是复制分支代码,而不是剪切)
git branch -d 分支名称:删除分支(代码合并完后再删)
git branch -D 分支名称:强制删除,不管你保没保存,没提示的删除(慎用)
注意:删除分支时切走再删(先换船再炸船)
详细讲解关于Git的分支的创建与介绍_AI_huihui的博客-CSDN博客
最后
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。