Git - Git教程 07:管理修改
管理修改
1 - 为什么 Git 比其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,而非文件
2 - 什么是修改 ?比如你新增了一行,这就是一个修改;删除了一行,也是一个修改;更改了某些字符,也是一个修改;删了一些又加了一些,也是一个修改;甚至创建一个新文件,也算一个修改
3 - 为什么说 Git 管理的是修改,而不是文件呢?下面就来验证
① 现在我们对 LICENSE.txt 做第 1 次的修改,添加内容 Git tracks changes .
$ cat LICENSE.txt
hello,Git! Git tracks changes .
添加并查看
1 $ git add LICENSE.txt 2 $ git status 3 On branch master 4 Changes to be committed: 5 (use "git restore --staged <file>..." to unstage) 6 modified: LICENSE.txt
② 第 2 次在 LICENSE.txt 文件中添加内容 Fuck ! 并 commit
1 $ git commit -m "just do it_LICENSE.txt" 2 [master 552c2fc] just do it_LICENSE.txt 3 1 file changed, 1 insertion(+), 1 deletion(-)
查看状态:你会发现第 2 次的修改并没有被提交!我们回顾一下操作过程:第 1 次修改是 git add;而第 2 次修改是 git commit
1 $ git status 2 On branch master 3 Changes not staged for commit: 4 (use "git add <file>..." to update what will be committed) 5 (use "git checkout -- <file>..." to discard changes in working directory) 6 7 modified: LICENSE.txt 8 9 no changes added to commit (use "git add" and/or "git commit -a")
Git 管理的是修改,当你使用 git add 命令后,在工作区的第 1 次修改就被放入暂存区,准备提交;但是在工作区的第 2 次修改并没有放入暂存区,git commit 只负责把暂存区的修改提交,这也就是第 1 次的修改被提交,而第 2 次的修改并不会被提交
③ 此时可用 git diff HEAD -- fileName 命令,查看工作区和版本库里面最新版本的区别 :发现第 2 次的修改确实没有被提交
1 $ git diff HEAD -- LICENSE.txt 2 diff --git a/LICENSE.txt b/LICENSE.txt 3 index 2d3ed27..f9c6e71 100644 4 --- a/LICENSE.txt 5 +++ b/LICENSE.txt 6 @@ -1 +1 @@ 7 -hello,Git! Git tracks changes . 8 +hello,Git! Git tracks changes .Fuck !
④ 进行提交
$ git add LICENSE.txt $ git commit -m "0003G" [master 042515e] 0003G 1 file changed, 1 insertion(+), 1 deletion(-)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)