系列笔记
【2025年超详细】Git 系列笔记-1 Git简述、Windows下git安装、Linux下git安装_displaying 2e+144 commits. adjust this setting in -CSDN博客
【2025年超详细】Git 系列笔记-2 github连接超时问题解决_2025访问github-CSDN博客
【2025年超详细】Git 系列笔记-3 Git客户端-Github desktop使用及IDEA集成Github、Gitee-CSDN博客
内容简述
本小节分两个章节,分别详细介绍了git版本号以及git指令两个重要知识点。详细的列出了各种相关指令及操作以及常用的远程仓库例如github的相关操作、生成SSH公钥并添加到github的方法等内容。
文字清晰、步骤明确,适合新手学习git。
第五章 版本号
一、版本号概念
Git采用40个16进制数字(SHA-1加密算法)组成版本号,这样生成的SHA-1哈希值作为唯一标识符来表示仓库中的每一次提交、文件(blob)、目录树(tree)和标签(tag)的状态。
因为版本号每次提交时生成,又名提交码。保存于 .git/objects 文件夹中,根据版本号就能找到文件。40个数字的前2位标识文件夹,后38位标识文件名。
可以使用 git log 查看提交历史,其中包含完整的SHA-1。或者使用 git log --online 来显示简短的提交哈希值和提交信息。
二、版本号-文件操作
2.1.查看定位到的文件内容
进入到 .git/objects 文件夹中,可以根据版本号找到文件。
若此时想要使用记事本等文本编辑器查看内容,会发现内容全是乱码,此时要使用git自带的工具进行查看。
回到仓库的根路径,右键选择 git bash here,在终端输入 git cat-file -p 版本号 。其中-p表示友好的访问文件内容。
发现内容并非我们想要看到的内容,因为git在文件创建修改的过程中,创建了多个版本号。此时根据刚才生成的tree版本号的直接关联,继续深入即可看到我们想要看到的文件内容。
2.2.不同状态文件会有不同的版本号
1、添加文件
当前提交的新增文件,关联着新旧两个版本的文件内容,这就是新增时的版本变化。
2、修改文件
修改文件同样会与最开始的版本号内容相关联,也新增了一个版本号对应着修改后的文件内容。
3、删除文件
删除后只关联一个版本号,对应着文件状态,但文件状态不关联于文件内容了。但本质上并未真正删除这个文件,其实是一个历史版本,依旧存在于仓库之中。
三、版本号-分支操作
3.1.分支操作对版本号的影响
最新的版本号:.git文件夹中有一个名叫HEAD的文件,里面存储的内容为一个文件路径ref: refs/heads/main,此时指向的文件内容就是最新的版本号。
此时在github desktop中创建一个新的分支,在heads文件夹中也能找到新创建的分支。
3.2.分支操作的版本号变化
不同的分支指向不同的版本,互相就不会有太大的影响
3.3.分支切换后变化
切换分支之后,git会将对应版本的文件提取到仓库中。
第六章 Git指令
一、Git常用指令介绍
二、仓库操作指令
2.1.查看git版本
输入以下指令,查看git版本。
git -v
2.2.创建仓库
在终端界面输入以下指令,完成本地仓库的初始化。此时ref、objects等文件夹下都为空,因为此时只完成初始化,当前没有提交操作,而使用github desktop等git工具会自动进行一个初始化的提交,生成ref等文件夹。
git init 仓库名
2.3.clone项目
在终端界面输入以下指令即可从远程仓库clone项目。
git clone 克隆地址
2.3.1.github例子
以github为例,进入感兴趣的项目页面,找到图片中位置的绿色Code下拉列表,点击下拉列表,即会出现clone所需要的URL,
选择你的克隆方式,HTTPs URL 或者 SSH URL,选择对应的选项,然后复制地址,回到终端,使用指令克隆即可。
(注意)Linux推荐使用SSH方式,否则将本地仓库推送到远程仓库时可能会一直出现提示输入github账户密码,但是无法推送的情况。
2.3.2.gitee例子
gitee克隆地址如图所示,选择克隆或下载,复制对应URL到指令中即可完成clone。
三、文件操作指令
3.1.git status查看状态
通过以下指令可以查看当前git状态。
git status
3.2.git add添加到暂存区
当有文件新增,但是与仓库未追踪时,会处于untracked(未跟踪)状态。
需要通过 git add 指令添加到暂存区,之后进行比对操作。通过 git add *.txt ,可以将所有类型为txt的文件添加到暂存区。
3.3.git rm从暂存区移动回工作区
若想将文件从暂存区放回工作区域可以使用RM指令,例如git rm –cached test01.txt,此时文件重新回到未跟踪状态。
3.4.commit从暂存区提交到仓库
通过git commit -m 备注内容,可以将文件提交到本地仓库。
3.5.git log 查看日志
3.6.删除
删除其实本质上也是一种提交,只是文件引用的时候不在引用这个文件了,所以也使用git add指令,将删除的状态添加到暂存区。
3.7.误删除处理相关指令
3.7.1.恢复删除文件
使用 git restore 文件名 指令,将错误操作的文件恢复。但若是已经将删除提交了,此时直接恢复就已经恢复不了。
git restore 文件名
3.7.2.重置版本
可此时可以考虑使用 git reset –hard 版本号 指令,将版本重置到开始的提交。但是会将开发过程中的提交也重置,这种操作并不好。
git reset –hard 版本号
3.7.2.撤销操作
通过 git revert 版本号 指令 ,可以用于撤销一次或多次操作,并记录新的提交将这些撤销的操作记录下来。相当于返回上一步的感觉,等同于将删除前的版本进行了一次新的提交,所以不会影响过程中的提交记录。
git revert 版本号
四、分支操作指令
4.1.创建新分支
使用以下指令,可以创建一个新分支。
git branch 分支名
(注意)需要注意的是,在进行其他分支的创建之前,需要有提交操作,将默认分支提交打到本地仓库,有了默认分支之后才可以进行其他分支的创建。
4.2.查看分支
使用以下指令,可以查看当前有的分支。
git branch -v
4.3.切换分支
使用以下指令,可以切换分支到你希望进行操作的分支。当前所处的分支会被*标记。
git checkout 分支名
4.4.创建并切换分支
使用以下指令,可以直接创建并切换到新分支。
git checkout -b 分支名
4.5.删除分支
使用以下指令,可以删除分支。
git branch -d 分支名
4.5.合并分支
使用以下指令,可以将分支名所代表的分支合并到主分支。合并分支时,需要将当前分支切换为主分支。
git merge 分支名
当出现 MERGING 提示的时候,证明合并过程中出现了问题。通过人工判断合并出错的内容,去除掉冲突内容,再次提交即可。
五、标签相关指令
5.1.创建标签
使用 git tag 标签名(需使用英文) 版本号 指令,可以为版本创建标签,此后就可直接使用标签名对应版本。类似于git log 标签1,它显示的内容就是标签1对应的版本日志。
ps:标签不能重复。
5.2.删除标签
使用以下指令,即可删除标签。
git tag -d 标签名
六、远程仓库操作指令
6.1.关联远程仓库
使用以下指令,为本地仓库配置URL。
git remote add 英文名称 URL
远程仓库中自带配置文件,在 .git 的config文件中有一段数据为[remote “origin”],此处会存有远程仓库的url与fetch。在使用的过程中,可以使用“origin”这个名称代替我们的URL。
实际开发中,有些项目不提供https格式的路由,而是SSH等格式,则需要到这个文件中,将URL修改成所需要的地址。
若为本地创建的仓库,没有URL,则可以通过指令git remote add 英文名称 URL,为其配置url。
还可以通过git remote rename/remove来修改名称或者删除。
6.2.本地推送到远程仓库-PUSH
6.2.1.推送到远程仓库
ssh keygen -t ras C 地址
在本地仓库中add后commit提交到本地仓库,本地仓库提交完成后,就可以使用 git push 地址 的指令,将本地仓库的内容推送到远程仓库。若是已经配置了SSH文件,则直接使用git push指令即可推送到对应的远程仓库。
git push 地址
6.2.2.配置SSH文件
如果URL的格式为SSH格式,则还需要安全认证并配置一下。
使用以下指令,可以为仓库配置公钥文件,将公钥文件中的内容,复制到远程仓库的公钥界面,添加到其中即可使用。
ssh keygen -t ras C 地址
6.2.3.公钥文件所处位置
Windows:c盘--->用户--->.ssh(安全认证文件夹)--->id_ras.pub(文件)
Linux:根目录/.ssh/id_rsa.pub
cd ~/.ssh cat id_rsa.pub
使用文本编辑器将公钥内容复制起来,在远程仓库创建SSH Key。
6.2.4.添加公钥到远程仓库-以github为例
①前往github的个人页面,在左上角点击头像,在下拉列表中选择Settings选项,进入设置页面。
②在设置页面,找到 SSH and GPG keys 选项,点击进入页面。
③选择右上角的NEW SSH Key,新建一个SSH key。
④为这个公钥取一个标题,将公钥内容粘贴到Key框中,点击Add SSH Key按钮,完成SSH公钥的创建。
6.2.PULL(远程仓库拉取到本地)
6.2.1.pull指令
使用以下指令,可以将远程仓库拉取到本地。其中origin为远程仓库名称,按需更换。
git pull origin
6.2.2.pull与clone与fetch区别
git clone:首次下载整个仓库到本地。只在项目开始时执行一次。
git fetch: 安全获取远程的更新信息,不改变工作目录、暂存区、当前本地分支内容
git pull:获取远程仓库更新内容并立即合并到本地仓库。改变当前本地分支和工作目录。相当于fetch+merge的组合操作。
总结: