dw网站站点正确建设方式,用阿里云自己建设网站,做网站代理好吗,织梦做视频网站文章目录 1. Git 的概念2. Git 的安装3. Git 的认识3.1 创建本地仓库3.2 配置Git3.3 认识工作区、暂存区、版本库 4. Git 的基本操作4.1、认识几个指令1#xff09;git add 添加命令2#xff09;git commit 提交命令3#xff09;git log 查看日志命令4#xff09;git cat-f… 文章目录 1. Git 的概念2. Git 的安装3. Git 的认识3.1 创建本地仓库3.2 配置Git3.3 认识工作区、暂存区、版本库 4. Git 的基本操作4.1、认识几个指令1git add 添加命令2git commit 提交命令3git log 查看日志命令4git cat-file 打印命令5git status 查看状态命令6git diff 比较差异命令7git reset 版本回退命令8git reflog 记录本地每次命令9git checkout -- 恢复工作区文件命令10git rm 删除命令 4.2 添加文件4.3 修改文件4.4 再看.git总结.git中几个特殊的文件或者目录 4.5 回退版本4.6 撤销修改情况1情况2情况3 4.7 删除文件 1. Git 的概念
**提出问题 ** 在工作或者学习时编写各种文档中为了防止文档丢失或者更改失误能使失误后恢复到某个版本就需要复制一个副本。日积月累的情况下版本数量会不断增多那怎么清楚每个版本修改了什么呢
解决方案 版本控制器。所谓的版本控制器通俗的讲就是一个可以记录工程的每一次改动和版本迭代的一个管理系统同时也方便多人协同作业。
目前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的文件对于我们开发人员来说Git 最重要的就是可以帮助我们管理软件开发项目中的源代码文件 注意事项 所有的版本控制系统包括Git 只能跟踪文本文件的动比如 TXT 文件网页所有的程序代码等等。版本控制系统可以告诉你每次的改动比如在第5行加了一个单词“Linux”在第8行删了一个单词 “Windows”。 而图片、视频这些二进制文件虽然也能由版本控制系统管理但没法跟踪文件的变化只能把二进制文件每次改动串起来也就是只知道图片从100KB改成了120KB具体修改的内容无从知道。 2. Git 的安装
对于Linux环境下
1centos安装 Git并查看版本验证是否安装成功
sudo yum install -y git
git --version2ubuntu安装Git并查看版本验证是否安装成功
sudo apt install -y git
git --version对于Windows环境下进入Git官网进行下载安装包Git - Downloads
更多安装步骤可以参考这篇mukes大佬mukes-CSDN博客的博客Git 详细安装教程详解 Git 安装过程的每一个步骤_git安装-CSDN博客
3. Git 的认识
下面将在centos7环境下进行Git操作指令的使用和讲解
3.1 创建本地仓库
仓库是进行版本控制的一个文件目录要想对文件进行版本控制就必须先创建一个仓库出来。创建一个 Git 本地仓库对应的命令如下
git init创建完成后会发现当前目录下多一个.git隐藏文件该文件是用来追踪管理仓库的不能手动修改这个目录文件否则容易破坏仓库用tree .git查看目录结构文件只有存入.git后才能被Git管理 3.2 配置Git
该配置是设置你的 用户名称 和 e-mail 地址这是关乎仓库操作的重要环节。配置指令如下其中–global 是一个可选项使用这个选项表示该机器全部Git仓库都用此配置
# 把 Name 改成自己的昵称
# 把 emailexample.com 改成邮箱的格式只要格式正确即可
# 在配置时可以直接配置成自己的昵称和邮箱
git config --global user.name Name
git config --global user.email emailexample.com使用查看命令查看是否配置成功
git config -l如果需要进行删除或修改配置可以用以下命令完成
注意如果使用了–global配置则删除时也要使用该选项否则无法删除
git config --global --unset user.name
git config --global --unset user.email3.3 认识工作区、暂存区、版本库
工作区 是在电脑上你要写代码或文件的目录。 暂存区 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件.git/index中我们把暂存区有时也叫作索引index。 版本库 又名仓库英文名 repository 。工作区有一个隐藏目录 .git 它不算工作区而是 Git 的版本库。这个版本库里面的所有文件都可以被 Git 管理起来每个文件的修改、删除Git都能跟踪以便任何时刻都可以追踪历史或者在将来某个时刻可以“还原”。
在当前目录下新建文件后进行任何操作前他们之间的关系如下 因此通过新建或粘贴进目录的文件并不能称之为向仓库中新增文件而只是在工作区新增了文件。必须要通过使用 git add 和 git commit 命令才能将文件添加到仓库中进行管理
4. Git 的基本操作
4.1、认识几个指令
首先先认识几个命令的具体内容然后再对指令组合进行各类操作
1git add 添加命令
将工作区中的文件添加到暂存区stage/index中空目录是执行不了操作的
git add [file1] [file2] ... # 添加一个或多个文件到暂存区
git add [dir] # 添加指定目录到暂存区包括子目录
git add . # 添加当前目录下的所有文件改动到暂存区2git commit 提交命令
将暂存区中文件提交到本地仓库中一般会带上 -m 选项这样后面就可以跟上 message 进行描述本次提交文件的细节方便记录版本改动情况
git commit -m message # 提交暂存区全部内容到本地仓库中
git commit [file1] [file2] ... -m message #提交暂存区的指定文件到仓库区3git log 查看日志命令
可以查看从最近到最远的提交日志并且可以看到我们 commit 时的日志消息。
如果嫌输出信息太多看得眼花缭乱的可以试试加上 --prettyoneline 参数简化–decorate则是可以看到head的指向信息
git log --prettyoneline --decorate4git cat-file 打印命令
对于git log中出现的一长串字符就是对象可以用该进行查看对象选择 -p 选项可以更加简洁显示出来
其中 tree对象 是记录了当前提交对应的项目根目录结构包括文件和子目录的信息每个文件对应一个blob对象存储文件内容子目录则对应另一个tree对象递归描述目录结构通过这个 tree 对象Git 可以完整重建提交时的目录和文件状态。
parent对象 则是上一次提交的对象。
git cat-file -p HEAD5git status 查看状态命令
查看上一次提交到现在是否对文件进行过修改
git status6git diff 比较差异命令
查看暂存区和工作区文件的差异显示的格式是Unix通用的diff格式。也可以使用 git diff HEAD – [file] 命令来查看版本库和工作区文件的区别。
git add file7git reset 版本回退命令
用于回退版本可以指定退回某一次提交的版本。“回退”本质是要将版本库中的内容进行回退工作区或暂存区是否回退由命令参数决定
–mixed 为默认选项使用时可以不用带该参数。该参数将暂存区的内容退回为指定提交版本内容工作区文件保持不变。
–soft 参数对于工作区和暂存区的内容都不变只是将版本库回退到某个指定版本。
–hard 参数将暂存区与工作区都退回到指定版本。切记工作区有未提交的代码时不要用这个命令因为工作区会回滚你没有提交的代码就再也找不回了所以使用该参数前一定要慎重。
git reset [--soft | --mixed | --hard] [HEAD]在上面对test进行了修改第一次输入git第二次再输入git2现在以表格形式说明应该用什么选项进行回退。
说明工作区暂存区版本库操作选项当前版本gitgit2gitgit2gitgit2无回退版本库gitgit2gitgit2git–soft回退暂存区gitgit2gitgit–mixed默认选项回退工作区gitgitgit–hard慎用 HEAD说明 1可直接写成 commit id表示指定退回的版本 2HEAD 进行选择 HEAD 表示当前版本 HEAD^ 上一个版本 HEAD^^ 上上一个版本 以此类推… 3可以使用 数字表示 HEAD~0 表示当前版本 HEAD~1 上一个版本 HEAD^2 上上一个版本 以此类推… 8git reflog 记录本地每次命令
该命令可以记录本地操作中的每一次命令从而可以查询各种命令的id该id是commit id的一部分比较短的但和objects的对象id是相等的
git reflog9git checkout – 恢复工作区文件命令
将工作区的指定文件恢复到最近一次提交的状态丢弃未提交的修改如果文件已添加到暂存区则不会影响暂存区内容仅覆盖工作区
git checkout -- [file]10git rm 删除命令
用于从版本控制中删除文件的命令它会同时从 Git 仓库暂存区和工作目录中移除文件
git rm [file]4.2 添加文件
通过以下 git add 和 git commit 2个命令就可以将工作区的文件添加进本地仓库了
注意一方面一定是先将工作区的文件添加到暂存区然后再从暂存区添加进仓库另一方面在Git中空目录不会被追踪因此创建空目录进行2个命令操作Git也会提示nothing to commit
git add .
git commit -m add file使用 git log可以 查看提交记录
git log4.3 修改文件
首先先对test文件添加多一行接着可以先使用 git status 查看在上次提交之后是否有对文件进行过修改 上面告诉我们存在修改但不知道哪些被修改的因此可以使用 git diff test 命令进行对比 之后就是进行添加文件操作完成修改。需要注意的是进行git add 后就看不到 no changes added to commit (use “git add” and/or “git commit -a”) 的消息了接下来继续 git commit 即可 4.4 再看.git
3个区对应的.git文件如下图所示 而我们知道 git log 可以看到提交信息那么是否检验这些信息能够对应到.git的信息呢 首先查看HEAD的指向可以发现指向refs/heads/master继续打印master的内容会出现一串字符通过对比发现就是最新一次提交的字符串信息而这个字符串其实就是对象即objects存放的内容
这个对象是一个SHA1计算出来的非常大的数字用十六进制表示前面2位是目录名称后面38位是文件名称 对象是经过安全哈希算法加密的因此此时要用 git cat-file 命令操作进行查看会显示tree、parent、提交的user和email以及最新一次提交的信息。 其中parent对象可以通过对比发现是上一次提交的对象而tree对象是什么呢继续用 git cat-file 命令操作进行查看 通过对比发现tree对象其实就是当前提交对应的项目根目录结构
继续打印test对应的对象就可以显示该文件最新的内容 总结.git中几个特殊的文件或者目录
1index暂存区 git add 后会更新该内容。
2HEAD默认指向 master 分支的一个指针。
3refs/heads/master: 文件里保存当前 master 分支的最新commit id 。
4objects: 包含了创建的各种版本库对象及内容可以简单理解为放了 git 维护的所有修改。
4.5 回退版本
用 --hard 选项进行演示直接回退到第一次提交用 git reset --hard [commit id] 完成回退log也随之改变 这时如果后悔了怎么办也可以继续用这个 git reset --hard [commit id] 指令在commit id中写上最后一次的id就可以完成回退 那如果忘记了这个commit id要怎么办这时就可以使用 git reflog查看这时就可以查找较短的commit id也就可以进行版本回退了。首先先回退到第一个版本然后查询id最后进行回退 为什么回退速度这么快 因为 Git 在内部有个指向当前分支此处是master的HEAD 指针 refs/heads/master 文件里保存当前 master 分支的最新commit id 。当我们在回退版本的时候Git 仅仅是给refs/heads/master 中存储一个特定的version所以速度会很快 4.6 撤销修改
撤销的目的就是不影响远程仓库的代码。如果我们在我们的工作区写了很长时间代码越写越写不下去觉得自己写的实在是垃圾想恢复到上一个版本。他们的基本场景有以下几项
初始情况说明工作区暂存区版本库操作说明情况1只在工作区中进行增加、修改、删除操作未进行addadd code1、手动修改撤销容易出错2、推荐用 git checkout – test指令情况2添加到暂存区中未进行commit操作add codeadd code1、git reset --hard test2、先git reset test然后用git checkout – test情况3已经commit但未进行push操作add codeadd codeadd codegit reset --hard HEAD^
情况1 情况2 情况3 4.7 删除文件
1先在工作区用rm删除文件在进行add和commit操作完成删除因此使用的Git版本是2.0以下所以删除操作要带上-A记录全部操作的选项 2使用git rm命令删除文件然后直接commit就可以完成删除了
在学完 Git 操作之后就进入下一个板块内容Git 的分支管理Git 的分支管理欢迎大家继续阅读