💌 所属专栏:【Git】
😀 作 者:我是夜阑的狗🐶
🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!
💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘
文章目录
- 前言
- 一、Git 高级命令
- 1、git diff指令
- (1) 查看工作目录中当前文件和暂存区域中文件的差异:
- (2) 查看暂存区域中文件与最新提交版本之间的差异:
- (3) 查看工作目录中当前文件和最新提交版本之间的差异:
- (4) 比较两个分支之间的差异:
- (5) 比较两个分支之间的差异:
- 2、git stash指令
- (1)将工作目录中的修改保存到stash中:
- (2)将工作目录中的修改保存到stash中,并添加一条描述:
- (3)查看当前stash列表:
- (4)应用暂存的修改创建新的分支:
- (5)删除最新的stash
- (6)删除指定的stash
- (7)应用最新的stash但不从stash列表中移除
- (8)应用指定的stash但不从stash列表中移除
- (9)恢复最新的stash,并从stash列表中移除
- (10)恢复最新的stash,并从stash列表中移除
- 3、git reset 指令
- (1)将文件恢复到最近一次提交的状态
- (2)保留暂存区域和工作目录不变
- (3)指定提交之后的修改移动到暂存区域,但保留工作目录不变
- (4)指定提交之后的修改移除暂存区域,但保留在工作目录中
- (5)将暂存区域和工作目录都重置为指定提交的状态
- (6)撤销最近一次的提交,并将修改的文件恢复到工作区
- (7)撤销最近一次的提交,但保留修改的文件
- (8)撤销最近一次的提交,但保留暂存区域和工作目录
- 总结
前言
大家好,又见面了,我是夜阑的狗🐶,本文是专栏【Git】专栏的第6篇文章;
这是今天学习到Git的高级命令(上篇)💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
专栏地址:【Git】 , 此专栏是我是夜阑的狗对Git,Gitee等工具使用过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
一、Git 高级命令
Git是一个版本控制系统,用于跟踪和管理文件的变化。它是由 Linus Torvalds
于2005年创建的,最初为了帮助 Linux
内核的开发而设计。当项目开发过程中,多个人提交同一个分支很容易出现,本地分支与目标分支不一致导致提交了,这里就讲解一个比较通解的方法来解决。话不多说,让我们来看看 Git 是怎么使用的吧。
1、git diff指令
git diff
指令用于查看工作目录中当前文件和暂存区域域中文件的差异,或者查看工作目录中当前文件和最新提交版本之间的差异。
该指令的基本用法如下:
git diff [选项] [<commit> [<commit>]]
其中,[]用于指定一个或多个提交的标识符,例如提交的哈希值或分支名称。如果省略[]参数,则默认将工作目录中的修改与暂存区的内容进行比较。
(1) 查看工作目录中当前文件和暂存区域中文件的差异:
git diff
(2) 查看暂存区域中文件与最新提交版本之间的差异:
git diff --cached
(3) 查看工作目录中当前文件和最新提交版本之间的差异:
git diff HEAD
(4) 比较两个分支之间的差异:
git diff <branch1> <branch2>
(5) 比较两个分支之间的差异:
git diff <file>
git diff
指令支持一系列选项,用于控制输出的格式和内容。下面是支持的其他选项:
- –color-words:以单词为单位,以颜色标记差异。
- –stat:仅显示文件名和统计信息,不显示具体差异内容。
- –name-only:仅显示有差异的文件名。
- –name-status:显示有差异的文件名及其状态(例如修改、删除、新增等)。
2、git stash指令
git stash
指令用于将当前工作目录中的所有未提交的修改暂存起来。可以在切换分支或者解决紧急问题时使用该指令,暂时保存当前修改,以便稍后恢复。以下是一些常用的 git stash
指令及其用法:
(1)将工作目录中的修改保存到stash中:
git stash
(2)将工作目录中的修改保存到stash中,并添加一条描述:
git stash save "描述信息"
(3)查看当前stash列表:
git stash list
(4)应用暂存的修改创建新的分支:
基于第 stash_index
个暂存的修改创建一个新的分支,并将此修改应用到新的分支中。
git stash branch <branch_name> stash@{stash_index}
(5)删除最新的stash
git stash drop
(6)删除指定的stash
删除第 stash_index
个暂存的修改,即将此修改从暂存列表中移除。
git stash drop stash@{<stash_index>}
(7)应用最新的stash但不从stash列表中移除
git stash apply
(8)应用指定的stash但不从stash列表中移除
将第 stash_index
个暂存的修改应用到当前工作目录中,但不会将此修改从暂存列表中删除。
git stash apply stash@{<stash_index>}
(9)恢复最新的stash,并从stash列表中移除
git stash pop
(10)恢复最新的stash,并从stash列表中移除
将第 stash_index
个暂存的修改应用到当前工作目录中,并将此修改从暂存列表中删除。
git stash pop stash@{<stash_index>}
注意:如果在使用git stash命令之前有未跟踪的文件,这些文件不会自动被stash起来,需要手动添加到暂存区。
3、git reset 指令
git reset
指令用于将HEAD指向的当前分支位置重置为指定的提交,并可选择性地更新暂存区域和工作目录。这个命令通常用于撤销之前的提交或者重置当前分支到一个特定的状态。以下是一些常用的 git reset
指令及其用法:
(1)将文件恢复到最近一次提交的状态
git reset HEAD <文件名>
命令用于将指定文件从暂存区域中移除,并将其恢复到与最后一次提交时相同的状态,但不会改变工作目录中的文件内容。这个命令通常用于取消暂存(或称为取消跟踪)已经添加到暂存区域但不打算提交的文件。
git reset HEAD file.txt
(2)保留暂存区域和工作目录不变
将HEAD指向的当前分支位置重置为指定的提交,但保留暂存区域和工作目录不变:
git reset <commit>
这个命令通常用于撤销之前的提交并移动分支指针到另一个位置。在这个命令中,<commit> 可以是提交哈希值、分支名或者标签名。
(3)指定提交之后的修改移动到暂存区域,但保留工作目录不变
将HEAD指向的当前分支位置重置为指定的提交,并将指定提交之后的修改移动到暂存区域,但保留工作目录不变:
git reset --soft <commit>
(4)指定提交之后的修改移除暂存区域,但保留在工作目录中
将HEAD指向的当前分支位置重置为指定的提交,并将指定提交之后的修改移除暂存区域,但保留在工作目录中:
git reset --mixed <commit>
(5)将暂存区域和工作目录都重置为指定提交的状态
将HEAD指向的当前分支位置重置为指定的提交,同时将暂存区域和工作目录都重置为指定提交的状态:
git reset --hard <commit>
(6)撤销最近一次的提交,并将修改的文件恢复到工作区
将HEAD指向的当前分支位置重置为上一个提交,同时将暂存区域和工作目录都重置为上一个提交的状态:
git reset --hard HEAD^
注意:HEAD^ 表示上一次提交,可以根据需要使用 HEAD~n 来指定撤销多少次提交。使用 --soft 参数表示保留修改的文件,使用 --hard 参数表示不保留修改的文件,恢复到最近一次提交的状态。
(7)撤销最近一次的提交,但保留修改的文件
将HEAD指向的当前分支位置重置为上一个提交,但保留修改的文件:
git reset --soft HEAD^
(8)撤销最近一次的提交,但保留暂存区域和工作目录
将HEAD指向的当前分支位置重置为上一个提交,并保留暂存区域和工作目录不变:
git reset --keep HEAD^
总结
感谢观看,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹
也欢迎你,关注我。👍 👍 👍
原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉
更多专栏订阅:
- 😀 【LeetCode题解(持续更新中)】
- 🌼 【鸿蒙系统】
- 👑 【Python脚本笔记】
- 🚝 【Java Web项目构建过程】
- 💛 【微信小程序开发教程】
- ⚽ 【JavaScript随手笔记】
- 🤩 【大数据学习笔记(华为云)】
- 🦄 【程序错误解决方法(建议收藏)】
- 🚀 【软件安装教程】
订阅更多,你们将会看到更多的优质内容!!