Git版本控制工具(一)

📅 发布时间:2026/10/10 16:39:22
Git版本控制工具(一)
一、Git安装Linux-centos安装命令sudoyum-yinstallgit检查版本安装完成后查看git版本,有版本信息说明安转成功。git--versionLinux-ubuntu安装命令sudoapt-getinstallgit-y检查版本git --versionWindows:打开cmd,输入一下安装命令wingetinstall--idGit.Git-e--sourcewinget验证git --version二、Git基本操作1.创建本地仓库命令gitinit当前目录下会创建出一个.git隐藏文件。里面包含了 Git 用来跟踪和管理文件修改历史的所有核心数据和细节不能修改里面的任何内容。2.配置git为什么要配置标识每一次代码提交commit的作者身份表明是谁提交的代码。如何配置?全局配置:在整个Linux机器上都使用该配置信息作为作者身份。gitconfig--globaluser.nameYour namegitconfig--globaluser.emailemailexample.com局部配置只对当前仓库生效。gitconfig--globaluser.nameYour namegitconfig--globaluser.emailemailexample.com确认是否已配置好gitconfig-l有作者身份标识说明就已配置好。删除配置gitconfig[--global]--unsetuser.namegitconfig[--global]--unsetuser.email加上--global就是删除机器上所有的git身份标识。3.工作区、暂存区、版本库工作区写代码界面的左侧目录就是工作区。.git不属于工作区属于Git的版本库。暂存区英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件.git/index中所以我们把暂存区有时也叫作索引index。版本库工作区有一个隐藏目录.git这个不算工作区而是Git的版本库。工作区是本地写代码的地方写完代码后git add [要提交的文件]将工作区内容的修改(新增、删除、修改)添加至版本库.git的暂存区修改的工作区内容会写入版本库的一个新的git对象中有许多的新的git对象创建形成对象库(objects)暂存区储存的就是git对象的指针然后 git commit -m “描述本次修改的信息”将暂存区内容提交至当前所在分支git branch查看下这一步才会被正式写到版本库中成为一条可以随时追踪和还原的历史记录最后git push origin 当前的分支将修改的代码推送至远程仓库。4.添加文件到版本库添加文件到版本库必须经历git add和git commit后才会被正式写入到版本库中。为什么要有git add 和git commit 操作只有git add 不也可以吗理论上可以但是这样效率很低。使用git add 和git commit 操作可以多次修改不同的文件分批使用 git add 把它们放到暂存区最后确认无误后再用 git commit 一次性把它们作为一个完整的版本提交上去。1)添加到暂存区添加一个文件或多个文件到暂存区git add [file1] [file2] ...添加指定目录到暂存区git add [dir]添加当前目录的所有改动到暂存区git add .2)提交到版本库git commint -m 描述本次修改的信息描述信息尤为重要描述本次做了哪些修改可以更好的对历史版本管理。3)查看历史提交记录git log:显示从近到远的提交日志。git log --prettyoneline显示更简洁的提交日志。可看到提交日志变简洁了每条日志包含commit id、提交描述信息。注commit id是用SHA1计算的一个非常大的数字并用16进制表示了出来。查看.git文件GIt就是根据.git隐藏文件做版本管理里面包含了 Git 用来跟踪和管理文件修改历史的所有核心数据和细节其中 HEAD 是 Git 中一个指针它表示当前所在的位置可以查看HEAD是什么可以知道它指向当前分支master而当前分支maseter中的内容是什么呢?查询得知是最近一次提交的commit id。commit id就是对象库中的一个git对象的索引。通过commit id查看git对象中内容命令git cat-file -p commit id查看最新commit id所指向git对象中的内容里面有上一次提交的commit id,和tree 对象,还有作者是谁、是谁提交的tree 对象是 Git 中保存目录结构的对象它记录“这个目录里面有哪些文件和子目录”。通过进入tree对象就能一步步的找到当前版本中所有的信息。查看tree对象中的内容管理了本目录下的文件和目录。由于最新一次提交正是改变了README.md文件中的内容。所以我们通过.git版本库追溯到上一个版本的README.md。可以发现最新一次的提交正是删除了README.md文件中的一些信息。追溯到上一个版本后还原了之前删除的信息。5.状态查询:命令git status作用查看当前仓库的状态。告诉我们当前在哪个分支、哪些(工作区)文件被修改了、哪些文件已经暂存、哪些文件还没有提交。Git status中的常见状态状态含义modified文件被修改untracked新文件Git未跟踪staged已进入暂存区nothing to commit没有需要提交的内容ahead本地领先远程behind本地落后远程6.显示差异git diff 是 Git 的“代码变化查看器”用于在提交前确认自己改了什么。1)显示目前工作区和暂存区之间的差异命令git diff [文件名]作用查看具体代码变化。 -307,6 307,14 namespace chat_server {,这是 diff 定位信息,格式 -旧文件位置,旧代码数量 新文件位置,新代码数量 解释-307,6 旧版本 从第307行开始 显示6行 307,14 新版本 从第307行开始 显示14行2)显示暂存区和commit之间的差异命令git diff --cached3显示当前工作区和最新commit之间的差异命令git diff HEAD4比较两个版本差异命令git diff commit1 commit25比较两个分支命令git diff 分支1 分支27.版本回退也可回退到当前版本应用场景常用于撤销 commit、版本回退、重新整理提交命令git reset [--soft | --mixed | --hard] [HEAD]HEAD说明可以写commit id,表示指定退回的版本。HEAD表示当前版本HEAD^表示上一个版本HEAD^^表示上上一个版本以此类推HEAD~0表示当前版本HEAD~1表示上一个版本HEAD~2表示上上一个版本以此类推注--hard慎用回退后之前的所有修改代码将会丢失。--mixed是默认选项如果执行了git reset --hard commit_id,后悔了怎么办使用git reflog命令查看本地的每一次命令。可以使用局部的commit id也可以回退。版本回退的本质修改分支(master)指向的commit id,即完成了版本回退。8.撤销修改我们在开发时发现自己写的代码很烂或写出了很多新的BUG,想恢复到上一个版本重新开发这时候就需要用到撤销修改了。撤销修改对应了三种情况只在工作区写了代码没有提交至暂存区在工作区写了代码提交到了暂存区但是没有提交到版本库在工作区写了代码提交到了暂存区也提交到了版本库解决方式9.删除版本库中的文件对于已经提交到版本库中的文件使用rm filename,只能删除当前工作区中的文件版本库中的文件并没有删除。需要将删除的文件经过git add 删除的文件名再git commit -m delete filename后版本库的文件才被删除。或则使用git rm 删除的文件名这条命令帮我们做了两件事一是在工作区中删除文件二是在暂存区中删除文件。然后再执行git commit -m “delete filename”版本库的文件才被删除。最后git push远程同步删除文件。