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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Git(6)-Git配置文件、底层操作命令

發布時間:2023/12/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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. 常用(迷糊)命令-冷知識

  • git commit 不加-m 自助打開編輯器,用于輸入改次提交的注釋。
  • git diff commit1 commit2 (commit1 是基準)
  • git show-branch --more=10 (查看當前分支簡潔單行commit 摘要信息)
  • git show 對象名 # 查看對象的信息
  • git mv 實現文件重命名
  • git clone public_repo my_repo (命令在本地也能創建原始庫public_repo的完整副本)
  • git rev-parse 3b18e512 # 依據(前綴、標簽、相對名)查看對象的完整散列值
  • git add 暫存一個文件,也叫緩存一個文件,或者叫,把文件放進索引。
  • git hash-object file 直接計算一個文件的hash值
    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/info

    3.3 基于散列值查看文件內容 git cat-file -p xxx

    chenyingying01@cyy hello % git cat-file -p 3b18e512dba79e4c8300dd08aeb37f8e728b8dad hello world chenyingying01@cyy hello % git rev-parse 3b18e512 # 依據前綴查看對象的完整散列值 3b18e512dba79e4c8300dd08aeb37f8e728b8dad

    3.4 查看文件關聯-git ls-files -s

    chenyingying01@cyy hello % git ls-files -s 100644 3b18e512dba79e4c8300dd08aeb37f8e728b8dad 0 hello.txt

    3.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.txt

    3.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 hello

    3.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配置文件、底层操作命令的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。