Git(6)-Git配置文件、底层操作命令
Git基本命令
- 1. 常用(迷糊)命令-冷知識
- 2. git 配置
- 2.1 設置 配置文件
- 2.2 查看 配置文件--git config -l
- 2.3 移除 配置文件設置--unset
- 2.3 命令別名 --alias
- 3.git 對象 (git底層操作命令)
- 3.1 初始化一個版本庫
- 3.2 新建一個簡單的blob 對象
- 3.3 基于散列值查看文件內容 git cat-file -p xxx
- 3.4 查看文件關聯-git ls-files -s
- 3.5 樹對象創建git write-tree
- 3.6創建提交對象 git commit-tree
- 3.7創建標簽git tag
- 3.文件操作
- 3.1 文件狀態 git status
- 3.2 從add 列表中刪除暫存文件git rm --cached
- 3.3查看整個歷史記錄
1. 常用(迷糊)命令-冷知識
10.沒有填提信息,不會產生新的提交Aborting commit due to empty commit message.
2. git 配置
2.1 設置 配置文件
git配置文件采用.ini文本文件。配置文件的位置不同,文件的優先級不同,導致實際的作用域不同。(這些配置文件可能不存在,需要自己創建)
.git/config #(工作目錄)版本庫特定配置,–file 修改改配置文件,優先級最高。
~/.gitconfig #(用戶根目錄)用戶特定的配置,–global 選項修改配置文件。
/etc/gitconfig # 系統范圍的配置文件, --system 修改配置文件。(優先級最低)
例如:要創建一個作者名和email 地址,用于所有版本庫的所有提交。相應的配置文件修改命令。
git config --global user.name “cyy”
git config --global user.email “cyy@163.com”
又如:為一個版本庫設置特定的名字和email地址, 覆蓋–global設置。
git config user.name “cyy1”
git config user.email “cyy1@163.com”
2.2 查看 配置文件–git config -l
git config -l # 列出配置文件的內容
cat .get/config # 直接查看相應配置文件的內容
2.3 移除 配置文件設置–unset
git config --unset --global user.email # 移除全局的email 設置。
2.3 命令別名 --alias
經常輸入一條常用而且負責的Git 命令,可以考慮為它設置一個別名。(通過修改配置文件)
git commit --global alias show-graph ‘log --graph --abbrev-commit --pretty=oneline’
#how-graph 為 log --graph --abbrev-commit --pretty=oneline 命令的別名。兩者作用一致
3.git 對象 (git底層操作命令)
對象庫是git 實現版本控制的核心。git 對象庫中包含4類對象:塊(blob), 目錄樹(tree),提交(commit), 標簽(tag)。
初始化版本庫后,創建了一些git必須的模版目錄。一般情況下不需要操作或者查看.git 目錄下的文件。
3.1 初始化一個版本庫
chenyingying01@cyy git-test % mkdir hello chenyingying01@cyy git-test % cd hello chenyingying01@cyy hello % git init chenyingying01@cyy hello % find . . ./.git ./.git/config ./.git/objects # 本目錄存放所有Git對象的目錄 ./.git/objects/pack ./.git/objects/info ./.git/HEAD ./.git/info ./.git/info/exclude # .......3.2 新建一個簡單的blob 對象
chenyingying01@cyy hello % echo "hello world" > hello.txt chenyingying01@cyy hello % ls -hl total 8 -rw-r--r-- 1 chenyingying01 staff 12B 8 28 11:35 hello.txt chenyingying01@cyy hello % git add hello.txt chenyingying01@cyy hello % find .git/objects .git/objects .git/objects/3b # 散列值的第一個字節成為一個目錄,可以提高文件系統的效率 .git/objects/3b/18e512dba79e4c8300dd08aeb37f8e728b8dad # 基于hello.txt內容計算的十六進制文件名放入對象庫 .git/objects/pack .git/objects/info3.3 基于散列值查看文件內容 git cat-file -p xxx
chenyingying01@cyy hello % git cat-file -p 3b18e512dba79e4c8300dd08aeb37f8e728b8dad hello world chenyingying01@cyy hello % git rev-parse 3b18e512 # 依據前綴查看對象的完整散列值 3b18e512dba79e4c8300dd08aeb37f8e728b8dad3.4 查看文件關聯-git ls-files -s
chenyingying01@cyy hello % git ls-files -s 100644 3b18e512dba79e4c8300dd08aeb37f8e728b8dad 0 hello.txt3.5 樹對象創建git write-tree
創建 文件散列值-文件真實名 的對應列表(構成一棵結構樹)樹的散列值和文件列表的內容相關。
chenyingying01@cyy hello % git write-tree 68aba62e560c0ebc3396e8ae9335232cd93a3f60 chenyingying01@cyy hello % find .git/objects .git/objects .git/objects/68 .git/objects/68/aba62e560c0ebc3396e8ae9335232cd93a3f60 .git/objects/3b .git/objects/3b/18e512dba79e4c8300dd08aeb37f8e728b8dad .git/objects/pack .git/objects/info chenyingying01@cyy hello % git cat-file -p 68aba6 100644 blob 3b18e512dba79e4c8300dd08aeb37f8e728b8dad hello.txt3.6創建提交對象 git commit-tree
chenyingying01@cyy hello % echo -n "commit a file that says hello\n" | git commit-tree 492413269 ff88f59f431c62619b961be4c27efb08506869de chenyingying01@cyy hello % git cat-file -p ff88f5 tree 492413269336d21fac079d4a4672e55d5d2147ac author chenyingying01 <chenyingying01@cyy.local> 1630212176 +0800 committer chenyingying01 <chenyingying01@cyy.local> 1630212176 +0800commit a file that says hello3.7創建標簽git tag
(不知道標簽有啥作用) 給某個提創建一個tag。
chenyingying01@cyy hello % git tag -m "Tag version 1.0" V1.0 49241326 # 帶注釋的標簽 chenyingying01@cyy hello % git rev-parse v1.0 # 標簽的散列值 a0f511a7c20b6ab5e6040dbc1e581b5c232bf3d6 chenyingying01@cyy hello % git cat-file -p a0f511 # 查看散列值對應的內容 object 492413269336d21fac079d4a4672e55d5d2147ac type tree tag V1.0 tagger chenyingying01 <chenyingying01@cyy.local> 1630212527 +0800Tag version 1.0 chenyingying01@cyy hello %在實際使用時,應該跳過底層git write-tree 和 git coomit-tree 步驟,只使用git commit 命令
塊(blob)–文件存儲,文件名為散列值
目錄樹(tree)–文件散列值-文件真實名的對應列表(構成一棵結構樹)
提交(commit)–
標簽(tag)–不知道有啥用,且往下看。
3.文件操作
3.1 文件狀態 git status
changes to be committed # add 后無更改changed but not updated # add 后又更改了untracked files # 沒有add 過的文件。3.2 從add 列表中刪除暫存文件git rm --cached
git rm --cached file
git ls-files --stage # 查看暫存列表
3.3查看整個歷史記錄
git log --follow file
總結
以上是生活随笔為你收集整理的Git(6)-Git配置文件、底层操作命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C:02---scanf、printf
- 下一篇: PaperNotes(18)-Vecto