最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 路径.git下的文件

    正文概述 掘金(烟草的香味)   2021-06-05   502

    用了这么久的git, 可以毫不谦虚地说对git是一无所知. 每天用来用去的就是commit, add, merge 等几个有限的命令, 这不符合我这刨根问底的性格啊. 不行, 得研究研究, 从哪里下手呢? 别的咱先不说, 所有 git 项目都有这么一个文件夹.git, 不如就从它入手 ? 那咱就看看这个文件夹下都有些什么妖魔鬼怪.

    先来想一想, .git文件夹下保存了git仓库的所有信息, 那么就包括:

    • 提交历史
    • 暂存内容
    • 当前分支
    • 远程分支路径
    • 等等

    好, 来看一看都有些什么:

    路径.git下的文件

    路径.git下的文件

    内容都在这了, 好, 那就对这些文件依次看一下吧.

    先来说一下我目前对这个测试项目的操作.

    ; 创建文件提交
    touch readme.md
    git add readme.md
    git commit -m 'add readme'
    ; 修改文件提交
    echo test > readme.md
    git add readme.md
    git commit -m 'change readme'
    ; 创建分支
    git checkout -b master_test
    

    仅做了两次提交操作, 这是为了保持.git文件夹最初的状态, 好方便查看.

    COMMIT_EDITMSG

    此文件保存了最后一次commit的信息. 没搞懂存这玩意有啥用, 我直接 git log看不就行了么.

    路径.git下的文件

    HEAD

    保存当前使用的分支.

    路径.git下的文件

    另外, 直接修改这个文件, 就可以达到git checkout命令的目的. (可以切换分支, 但是不能创建分支哦)

    再另外, 从这个文件内容中, 可以推断出, refs文件夹是用来保存分支信息的, 不过这个先记到小本本上, 接着往后看.

    config

    不用说, 看名字也知道, 是用来保存配置信息的.

    我们加一条本地配置信息看一下: git config --local user.name 'git_test'

    如果不出所料, 远程地址也保存在这里, 加一下: git remote add origin http://test.com/aa/bb

    路径.git下的文件

    description

    不多说了, 上图, 看文件描述是用来填写项目的描述信息的.

    路径.git下的文件

    hooks

    存放项目的各个钩子函数, 就是在各种操作的前后添加自己的执行逻辑. 这个之前倒是一直没有用过. 文件夹下有样例文件, 直接将.sample后缀删除即可使用. (下面只列举了常用的几个, 并不是全部)

    • pre-commit: commit 之前触发. 可用来对代码进行检查
    • prepare-commit-msg: commit 之前, 添加 message 之后.
    • commit-msg: commit 时调用, 可修改 message, 也可以取消本次提交
    • post-commit: commit 之后调用
    • post-update: push之后触发
    • pre-receive: push 时, 实际推送之前调用
    • pre-push: push 之前触发
    • pre-merge-commit: merge之前触发
    • pre-rebase: rebase 之前触发

    等等, 具体信息可到官网文档查看

    可以看到, 此文件夹用来对工作流程进行自动化管理的.

    index

    用来保存本地暂存区中的内容. 二进制文件, 不可直接查看. 可通过命令: git ls-files --stage来查看当前暂存区内容.

    info

    路径下目前只有一个文件: exclude. 此文件用来在git中忽略某些文件. 与.gitignore不同的是, 此文件不会进行提交. 也就是用来忽略一些仅你本地使用的文件.

    logs

    用来记录所有的操作记录. 看一下我本地这几个文件的内容.

    路径.git下的文件

    HEAD文件记录的是所有的操作, 而对应refs文件夹下, 则记录的时候各个分支中的操作.

    同时, 可以通过git reflog命令来进行查看, 当出现误操作的时候, 通过git reset --hard {id}来后悔.

    objects

    这个文件保存的就是所有 git 历史变动了, 具体文件的保存结构就留待日后研究. 这里先不深究.

    可通过git gc来减少文件体积.

    refs

    保存本地的分支和标签. 文件内容也很简单, 就是一个 commit id.

    另外, gc之后, 会多出来一个: .git/packed-refs文件. 此文件包含refs下的所有信息, 同时refs下的文件会被清空.

    其他文件

    FATCH_HEAD

    用来保存远程分支信息

    路径.git下的文件

    ORIG_HEAD

    在执行如merge, reset, rebase等操作时, 对 "HEAD"文件内容进行备份.

    sourcetreeconfig

    当使用sourcetree对项目进行管理时, 用来保存sourcetree中的配置信息.


    .git文件夹下的内容过了一遍, 基本保存的位置都找到了, 剩下保存内容的二进制文件了还整不明白.

    过下来之后, 倒也发现了一些能够帮到我的内容, 比如本地的 ignore, 之前的处理是在路径下添加.gitignore同时将.gitignore文件本身也忽略. 后面可以直接修改.git/info/exclude这个文件.


    起源地下载网 » 路径.git下的文件

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元