知者何南 发表于 2024-9-25 23:50:54

【Git基本使用】添加文件 | 修改文件 | 及其各场景下.git目录树的厘革

目录
1. 添加文件&add使用和commit使用
2. .git树状目录的厘革
3. git其他使用 
4. 修改文件
4.1 git status 
4.2 git diff
1. 添加文件&add使用和commit使用

   

[*]add使用:将工作区中所有文件的修改内容 添加进版本库的暂存区中。
[*]commit使用:将暂存区的内容 提交到master分支下。此步完成之后,才气真正意义上说将修改的内容放到版本库中(本地仓库)。
[*]add对应命令:git add命令
[*]commit对应命令:git commit命令
add使用:


[*]写法1:git add 文件的名称(固然后面也可以跟上多个文件)
[*]写法2:git add . (当前目录下所有内容的修改全部添加到暂存区)
commit使用


[*]git commit -m " " (引号里是本次提交的细节,只管详细的描述,请描述直接语言,不可修改的)(git 版本控制器 管理文件的版本 就是依据版本提交的细节)
[*]回车之后,就可以看到你提交乐成的信息。
[*]第一行是提交的细节或备注。
[*]第二行是有几个文件改变,改变的内容是什么。(此例子是有4个文件改变,改变的内容是1行)
git add
git commit

git add ReadMe//文件名,后面可以跟多个文件名
git add . //当前目录下所有文件修改的内容全部添加到暂存区

git commit -m " " https://i-blog.csdnimg.cn/direct/4def858aead949c892c1b4e56720b1fe.pnghttps://i-blog.csdnimg.cn/direct/7ebe9e7335884d82b808a815d8a0243a.png 
2. .git树状目录的厘革

   

[*]add使用之后,index暂存区新增内容的git对象的索引。
[*]add使用同时在对象区创建了git对象,内容在这内里。
[*]head指针指向master
[*]commit使用之后,master新增了对象库中对象的索引。
[*]master内里存放的就是最新一次提交commit id
[*]commit id分为两个部门:

[*]前两位是文件夹的名称
[*]剩下是后面是标识


[*]mastet——>最新一次提交记录的commit id——>生存的最近一次提交记录(内里有提交文件修改内容的commit id)——>生存的是提交文件(每个提交的文件都有单独的commit id)——> commit id生存的是修改的内容。
【head指针指向master】cat .git/HEAD
https://i-blog.csdnimg.cn/direct/c8a7e3a98e9141e2a00d0fbf2b507fad.png
【未使用前】 
https://i-blog.csdnimg.cn/direct/902c12365fbb49bcbf364a992adb4803.png
【使用之后】 
https://i-blog.csdnimg.cn/direct/919722eb0db44bc5a142a92e0eb787b4.png
cat .git/refs/heads/master
//master的内容,里面存放的是最新一次提交的commit id https://i-blog.csdnimg.cn/direct/bba6d47305e1424096390297cb1e6d93.png
git cat-file -p跟commit id //查看maseter索引commit id的内容 【只提交了一次以是只有一次提交记录】 
【tree后面也是一个对象,对象内里存放的是最新一次提交的commit id】
https://i-blog.csdnimg.cn/direct/bbd676ffc7974197be678d3e5aff6ef0.png
【此例子我们提交了两次,以是有parent: 上次提交内容parent的commit id】
https://i-blog.csdnimg.cn/direct/cae1e60fe5224d59bad2fde211938678.png
git cat-file -p 0de78ceec6ac9cf0502e67fc7d7dced363a7ada5//commit id是提交记录中tree后面对象的索引 https://i-blog.csdnimg.cn/direct/bed589e224c94cb79a305a5e6f003365.png
git cat-file -p ce09bf3ad4f74a39462ae54d7a75272977303c05 //查改对应文件commit id中保存的修改的内容 https://i-blog.csdnimg.cn/direct/d367b9f89f324dd3a536abd7ff1ce9eb.png 
https://i-blog.csdnimg.cn/direct/7e61dfb617d7420a93a7c279f6129acf.png
3. git其他使用 

   git log 


[*]git log :可以帮助我们打印时间从近到远的提交记录。
[*] 每次提交都会有一个commit id(通过哈希盘算出来的一个数字,不是递增的数字。十六进制表示。)
[*] 这个id可以定位到我们每次的提交的文件内容。定位到是谁提交和提交时间以及提交的详细信息。
[*] 下面例子:清楚的知道commit id和设置的姓名和邮箱。
https://i-blog.csdnimg.cn/direct/d7aac81d23164565a807d01ea588b6c2.png
    git log --pretty=oneline


[*]git log --pretty=oneline:简化上面的内容(打印一行漂亮的日志)
https://i-blog.csdnimg.cn/direct/1c687a0ab534415f81be2fa369670b0b.png
4. 修改文件

   前提:对工作区的文件的修改包罗以下几个方面:

[*]新增一个文件
[*]删除一个文件
[*]修改一个文件内容(增删改)
重点❗:Git版本控制器并不是追踪管理文件本身,而是文件的修改。对象库中的一个git对象,内里存储其实是工作区修改的内容。Git管理的是修改的内容而不是一整个的文件。
留意❗:每次修改工作区的文件之后,提交之后,须要用git的指令查看本地仓库的状态和修改的具体内容。

4.1 git status 

   查看当前仓库的状态:git status


[*]用于查看上一次提交 截至到现在 是否对哪些文件做出修改,留意只是哪些文件厘革了/修改了,不能查看修改的内容。
[*]Changes not staged for commit 没有将要提交的文件修改内容 到暂存区内容(工作区存在修改过的文件 没有提交到暂存区中了)
[*]修改的是在工作区:modified:ReadMe修改的内容在。
【add未提交到暂存区前】 
https://i-blog.csdnimg.cn/direct/0b31d6a8a0ad480db6c7e3ccc75fa7d4.png
【add提交到暂存区】  【commit 未提交到本地仓库前】 https://i-blog.csdnimg.cn/direct/a524e017549e4d4ca28a5eaee6ddd032.png
【commit提交到本地仓库】https://i-blog.csdnimg.cn/direct/f140233ba44044c98380ef20c9842ce2.png
4.2 git diff

   体现暂存区和工作区之间差别的文件内容的:git diff   须要查看某个修改文件的具体内容的文件名。(体现的是diff格式)
https://i-blog.csdnimg.cn/direct/1668ea27f29840f1a60380d02b585d35.png https://i-blog.csdnimg.cn/direct/96053f6322b0472b8cd9300e0bdcb591.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Git基本使用】添加文件 | 修改文件 | 及其各场景下.git目录树的厘革