Git命令学习-基本操作(1),2024年最新美团架构师深入讲解大数据开发开发

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

git add [file]

file 可以是多个文件,也可以是目录

* 提交文件到仓库

 

6. 提交文件至仓库。注:此时的提交是将暂存区的文件提交至版本库,工作区与版本库文件内容一致,文件状态发生改变[Staged -> Unmodify]

git commit -m “add index.html”

git commit -m [message]

message 是本次提交的备注,方便记忆

git commit -am “add index.html”,该命令会自动暂存已修改和被删除的文件,但对新添加的文件不适用,不建议使用这种提交方式。

* 比较文件不同

 

7. 修改index.html,文件状态发生变化[Unmodify -> Modified]

echo “Hello Human” > index.html

8. 将修改过的index.html添加至仓库,文件状态发生变化[Modified -> Staged]

git add index.html

9. 修改index.html

echo “Hello everyone” > index.html

10. 比较文件不同,此命令比较的是工作区与暂存区中index.html的区别

git diff index.html # show 1

11. 比较文件不同,此命令比较的是暂存区与版本库中index.html的区别

git diff --cached index.html # show 2

12. 比较文件不同,此命令比较的是工作区与版本库中index.html的区别

git diff HEAD index.html

git diff [file]

git diff --cached [file]

git diff HEAD [file]

file 可以是多个文件,也可以是目录

 

show 1 工作区与暂存区。a为暂存区,b为工作区

diff --git a/index.html b/index.html
index d98ab83…9c514e8 100644
— a/index.html
+++ b/index.html
@@ -1 +1 @@
-Hello Human
+Hello everyone

 

show 2 暂存区与版本库。a为版本库,b为暂存区

diff --git a/index.html b/index.html
index 557db03…d98ab83 100644
— a/index.html
+++ b/index.html
@@ -1 +1 @@
-Hello World
+Hello Human

 

show 3 工作区与版本库。a为版本库,b为工作区

diff --git a/index.html b/index.html
index 557db03…9c514e8 100644
— a/index.html
+++ b/index.html
@@ -1 +1 @@
-Hello World
+Hello everyone




> 
> **git diff 理解 (使用show 1:git diff index.html 解释)**:  
>  第一行:`diff --git a/index.html b/index.html` ,申明比较的文件,a版本的index.html(即变动前),b版本的index.html(即变动后)  
>  第二行:`index d98ab83..9c514e8 100644` ,`d98ab83`为变动前的a版本文件的hash,`9c514e8`为变动后的b版本中文件的hash,`100644`为申明对象模式:`100`代表普通文件,`644`代表文件具有的权限  
>  第三、四行:`--- a/index.html`、`+++ b/index.html` , `---` 代表变动前,`+++` 代表变动后  
>  第五行:`@@ -1 +1 @@` == `@@ -1,0 +1,0 @@` ,`-` 指变动前的文件,`+` 指变动后的文件,指变动前的文件从第1行开始的0行与变动后的文件第1行开始的0行存在不同  
>  第六、七行:`-Hello Human`、`+Hello everyone` ,`-` 、`+` :代表变动标志位,`-` 代表该行删除内容,`+` 代表该行新增内容
> 
> 
> 


* 查看仓库状态

 

13. 查看仓库状态,显示有变更的文件

git status
位于分支 master
要提交的变更:
(使用 “git restore --staged <文件>…” 以取消暂存)
修改: index.html

尚未暂存以备提交的变更:
(使用 “git add <文件>…” 更新要提交的内容)
(使用 “git restore <文件>…” 丢弃工作区的改动)
修改: index.html

分析返回信息

回顾步骤:

1. 创建文件 index.html (Hello World),添加至暂存区,提交至版本库;

2. 修改文件 index.html (Hello Human),添加至暂存区;

3. 修改文件 index.html (Hello everyone)。

由此可知,git status 返回的要提交变更(即暂存区中尚未提交)的文件为 index.html(Hello Human);git status 返回的尚未暂存以备提交的变更(即工作区中修改后)的文件为 index.html (Hello everyone)。




> 
> **git status 理解**
> 
> 
> * 要提交的变更:已跟踪的文件,其在工作区有动作(即增删改),并已同步其动作(即增删改)至暂存区,但该文件动作(即增删改)未提交至版本库
> * 尚未暂存以备提交的变更:已跟踪的文件,其在工作区有动作(即增删改),但该文件动作(即增删改)未添加至暂存区  
>  未跟踪的文件:未跟踪的文件
> 
> 
> 


* 删除文件

 

14. 删除文件

git rm [file]

根据报错信息我们可知index.html在暂存区的内容与工作区和版本库中的都不一样,需要使用-f强制删除

删除文件的几种报错

1. 仅修改了工作区内容的文件

error: 如下文件有本地修改:
test.html
(使用 --cached 保留本地文件,或用 -f 强制删除)

2. 修改了工作区内容的,并已添加至暂存区的文件

error: 下列文件索引中有变更
test.html
(使用 --cached 保留本地文件,或用 -f 强制删除)

3. 修改了工作区内容的,并添加至暂存区后,又修改了工作区内容的文件

error: 如下文件其暂存的内容和工作区及 HEAD 中的都不一样:
index.html
(使用 -f 强制删除)

由此可知,只要工作区与暂存区之中的文件有所变动,删除文件就必须家参数 -f

 

删除文件,方法一:此方法将连同工作区的文件一并删除

git rm -f index.html

查看仓库当前状态

git status
位于分支 master
要提交的变更:
(使用 “git restore --staged <文件>…” 以取消暂存)
删除: index.html

分析返回信息

ls查看工作区文件,观察到工作区的index.html已被删除。通过返回信息可知,暂存区中的index.html已被删除,但尚未删除版本库中的index.html

 

删除文件,方法二:此方法将保留工作区的文件

git rm -f --cached index.html

查看仓库当前状态

git status
位于分支 master
要提交的变更:
(使用 “git restore --staged <文件>…” 以取消暂存)
删除: index.html

未跟踪的文件:
(使用 “git add <文件>…” 以包含要提交的内容)
index.html

分析返回信息

ls查看工作区文件,观察到工作区的index.html未被删除。通过返回信息可知,暂存区中的index.html已被删除,但尚未删除版本库中的index.html。将其返回信息与方法一的返回信息进行比较,不同的是工作区的index.html文件还保留着,但此时该文件状态发生了变化[Unmodify -> Untracked]

 `git rm [file]`的小结:我们可以发现不管哪种删除文件方法,其都是仅将暂存区中的文件删除,并未删除版本库中的文件。学到此处(节点一),执行 `git rm [file]` 后,git 为后续操作提供了两个方向,方向一:确认删除文件;方向二:还原文件。方向一与方向二皆以删除文件方法二(工作区文件保留)为示例前提。首先我们先跳过下面这段内容,直接进入下一节「还原文件」,学习方向二:还原文件。

 

方向一:确认删除文件

确定要删除该文件,即从版本库中删除文件

git commit -m “remove index.html”

 学到此处, `git rm [file]` 学习结束,暂存区、版本库中的index.html文件已被删除,至于工作区中的index.html是否存在,就取决于你选择的删除方法了。接下去我们继续学习,按照本文阅读顺序来的应该已经学习了 `git restore [file]` ,我们可以继续往下学习,前往下下节「查看提交历史」,当然没有学习过的可以继续接下去阅读。
* 还原文件

 

方向二:还原文件

使用 git rm --cached [file] 前,index.html的文件内容,工作区:Hello everyone,暂存区:Hello Human,版本库:Hello World

使用 git rm --cached [file] 后,index.html的文件内容,工作区:Hello everyone,暂存区:被删除,版本库:Hello World

15. 还原暂存区文件

git restore --staged index.html

查看仓库当前状态

git status
位于分支 master
尚未暂存以备提交的变更:
(使用 “git add <文件>…” 更新要提交的内容)
(使用 “git restore <文件>…” 丢弃工作区的改动)
修改: index.html

修改尚未加入提交(使用 “git add” 和/或 “git commit -a”)

分析返回信息

cat index.html可以发现工作区中的文件内容并无变化。通过返回信息发现,原先的删除时的未跟踪的文件已经消失,由此可知文件是否为跟踪状态是由暂存区中是否存在该文件决定,其次也可知 git restore --staged [file] 并不会直接影响工作区的文件,而是将暂存区文件内容恢复至与版本库文件内容一致,若需还原工作区中的文件还需执行下一个还原命令

16. 还原工作区文件

git restore index.html

查看仓库当前状态

git status
位于分支 master
无文件要提交,干净的工作区

分析返回信息

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
[外链图片转存中…(img-qONOd5CN-1713287175105)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值