日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

路径.git下的文件

發(fā)布時間:2024/8/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 路径.git下的文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用了這么久的git, 可以毫不謙虛地說對git是一無所知. 每天用來用去的就是commit, add, merge 等幾個有限的命令, 這不符合我這刨根問底的性格啊. 不行, 得研究研究, 從哪里下手呢? 別的咱先不說, 所有 git 項目都有這么一個文件夾.git, 不如就從它入手 ? 那咱就看看這個文件夾下都有些什么妖魔鬼怪.

先來想一想, .git文件夾下保存了git倉庫的所有信息, 那么就包括:

  • 提交歷史
  • 暫存內(nèi)容
  • 當前分支
  • 遠程分支路徑
  • 等等

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

內(nèi)容都在這了, 好, 那就對這些文件依次看一下吧.

先來說一下我目前對這個測試項目的操作.

; 創(chuàng)建文件提交 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' ; 創(chuàng)建分支 git checkout -b master_test

僅做了兩次提交操作, 這是為了保持.git文件夾最初的狀態(tài), 好方便查看.

COMMIT_EDITMSG

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

HEAD

保存當前使用的分支.

另外, 直接修改這個文件, 就可以達到git checkout命令的目的. (可以切換分支, 但是不能創(chuàng)建分支哦)

再另外, 從這個文件內(nèi)容中, 可以推斷出, refs文件夾是用來保存分支信息的, 不過這個先記到小本本上, 接著往后看.

config

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

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

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

description

不多說了, 上圖, 看文件描述是用來填寫項目的描述信息的.

hooks

存放項目的各個鉤子函數(shù), 就是在各種操作的前后添加自己的執(zhí)行邏輯. 這個之前倒是一直沒有用過. 文件夾下有樣例文件, 直接將.sample后綴刪除即可使用. (下面只列舉了常用的幾個, 并不是全部)

  • pre-commit: commit 之前觸發(fā). 可用來對代碼進行檢查

  • prepare-commit-msg: commit 之前, 添加 message 之后.

  • commit-msg: commit 時調(diào)用, 可修改 message, 也可以取消本次提交

  • post-commit: commit 之后調(diào)用

  • post-update: push之后觸發(fā)

  • pre-receive: push 時, 實際推送之前調(diào)用

  • pre-push: push 之前觸發(fā)

  • pre-merge-commit: merge之前觸發(fā)

  • pre-rebase: rebase 之前觸發(fā)

等等, 具體信息可到官網(wǎng)文檔查看

可以看到, 此文件夾用來對工作流程進行自動化管理的.

index

用來保存本地暫存區(qū)中的內(nèi)容. 二進制文件, 不可直接查看. 可通過命令: git ls-files --stage來查看當前暫存區(qū)內(nèi)容.

info

路徑下目前只有一個文件: exclude. 此文件用來在git中忽略某些文件. 與.gitignore不同的是, 此文件不會進行提交. 也就是用來忽略一些僅你本地使用的文件.

logs

用來記錄所有的操作記錄. 看一下我本地這幾個文件的內(nèi)容.

HEAD文件記錄的是所有的操作, 而對應(yīng)refs文件夾下, 則記錄的時候各個分支中的操作.

同時, 可以通過git reflog命令來進行查看, 當出現(xiàn)誤操作的時候, 通過git reset --hard {id}來后悔.

objects

這個文件保存的就是所有 git 歷史變動了, 具體文件的保存結(jié)構(gòu)就留待日后研究. 這里先不深究.

可通過git gc來減少文件體積.

refs

保存本地的分支和標簽. 文件內(nèi)容也很簡單, 就是一個 commit id.

另外, gc之后, 會多出來一個: .git/packed-refs文件. 此文件包含refs下的所有信息, 同時refs下的文件會被清空.

其他文件

FATCH_HEAD

用來保存遠程分支信息

ORIG_HEAD

在執(zhí)行如merge, reset, rebase等操作時, 對 "HEAD"文件內(nèi)容進行備份.

sourcetreeconfig

當使用sourcetree對項目進行管理時, 用來保存sourcetree中的配置信息.


將.git文件夾下的內(nèi)容過了一遍, 基本保存的位置都找到了, 剩下保存內(nèi)容的二進制文件了還整不明白.

過下來之后, 倒也發(fā)現(xiàn)了一些能夠幫到我的內(nèi)容, 比如本地的 ignore, 之前的處理是在路徑下添加.gitignore同時將.gitignore文件本身也忽略. 后面可以直接修改.git/info/exclude這個文件.

總結(jié)

以上是生活随笔為你收集整理的路径.git下的文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。