Git (六) 架构

一、结构组成

仓库:就是我的第三篇中,执行了git init的目录
版本库:工作区中有一个隐藏目录.git,这个目录不属于工作区,而是t的版本牌,是t管理的所有内容
暂存区:版本库中包含一个临时区域,保存下一步要提交的文件。
分支:版本库中包含若干分支,提交的文件存储在分支中
在这里插入图片描述
1.文件首先出现在工作区,如果需要有t管理,则通过git add xx将文件添加到暂存区
通过git commit…将暂存区的文件y一次性提交到分支中, 同时提交行为将触发gt的一次commit日志记录。
2.关于分支是t的一个重要概念,后续讲解,master分支是安装t时默认创建的

二、文件状态

切换到某分支,在工作区操作其文件,文件的状态会有如下可能:
·未服踪
       工作区中新创建的文件,gt中并未保存它的任何
记录
       git add增加到暂存时,即可建立跟踪
·修改
      已跟踪的文件,在工作区被修改了。
·暂存
      git add的文件,处于暂存状态。
      每次暂存的是文件的当时状态,如果暂存后又做了修改,需要再次 git add文件。
      每次提交时,是将所有暂存的文件提交。
·提交
      git commit的文件,处于提交状态,
      每次提交,增加一个快照版本,分支指针后移,指向最新版本。

三、文件状态查看

在工作区中一系列操作后,要查看文件状态:
执行:git status 可以看到文件状态:
On pranch mastera分支master Changes to be committed#说明有内容在暂存区可以提交
(use"git reset HEAD .…"to unstage)
modified:hello.txt On branch mastera分支master Changes to be commited:#说明有内容在暂存区可以提交
(use"git reset HEAD "to unstage)
modified:hello.bt Changes not staged for commit:#说明有内容没有增加到暂存区
(use"git add …to update what will be committed)
(use"git checkout-"to discard changes in working directory)
modified:helloxt
细节:通过 git diff比对变动情况:
git diff hello1e.txt 比对工作区和暂存区若暂存区没有,比分)
git diff HEAD--hello1e.txt 比对工作区和分支中的最新结果(了解或忽略此点)
git diff--staged hello1e.txt 对比暂存和分支中的最新结果(了解或忽略此点)
:-hello1e.txt之间需要分隔,不能写成–hello18.txt

四、撤销修改(了解)

·工作区撤销
|如果在工作区文件中添加了如下一行,你突然意识版章可能不保,所以需要撤销修改

1 ...
2 My stupid boss still prefers svN.

执行:git checkout--hello9.txt 可以缴销到最近一次git addgit commit 的状态即:如果暂存区有此文件,则将暂存区中的文件内容恢复到工作区。
如果暂存区没有此文件,则将分支中的文件内容恢复到工作区。
注意:--hel1lo9.txt 一定不能少写--,否则就是其他语意啦。
·暂存区撤销
如果在工作区中修改了文件并发送到暂存区中,但文件中有需要嫩销的内容则可以执行:
git reset HEAD hell09.txt 将helo.bt在暂存区的内容清除。
然后可执行:git checkout --hello9.txt 回退到上一个版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MW0309

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值