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. 常用(迷糊)命令-冷知識

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444676.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444676.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444676.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【軟考中級】網絡工程師:8.網絡安全

本章考察內容比較廣泛&#xff0c;考題對知識點都會有所涉及。 8.1 網絡安全的基本概念 8.1.1 網絡安全威脅的類型 竊聽 這種情況發生在廣播式網絡系統中&#xff0c;每個節點都可以讀取數據&#xff0c;實現搭線竊聽、安裝通信監視器和讀取網上的信息等。 假冒 當一個實體…

leetcode9 回文數

判斷一個整數是否是回文數。回文數是指正序&#xff08;從左向右&#xff09;和倒序&#xff08;從右向左&#xff09;讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個…

caffe各層參數詳解

在prototxt文件中,層都是用layer{}的結構表示,而里面包含的層的參數可以在caffe.proto文件中找到,比如說Data類型的結構由message DataParameter所定義,Convolution類型的結構由message ConvolutionParameter所定義。 具體說明下: name表示該層的名稱type表示該層的類型,…

caffe網絡結構圖繪制

繪制網絡圖通常有兩種方法&#xff1a; 一種是利用python自帶的draw_net.py&#xff0c;首先安裝兩個庫&#xff1a; sudo apt-get install graphviz sudo pip install pydot 接下來就可以用python自帶的draw_net.py文件來繪制網絡圖了。 draw_net.py執行時帶三個參數&…

Git(7)-Git commit

Git提交1.識別不同的提交1.1絕對提交名-ID1.2 引用和符號引用--HEAD2.查看提交的歷史記錄-git log3.提交圖-gitk4.提交的范圍4.1 X..Y4.1 X...Y5.查找bad 提交--git bisect6.查看代碼修改者-git blame命令概覽git commit -a # 直接提交修改和刪除文件有效加了-a&#xff0c;在 …

leetcode111. 二叉樹的最小深度

給定一個二叉樹&#xff0c;找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 思路&#xff1a…

Caffe將圖像數據轉換成leveldb/lmdb

Caffe中convert_imageset projrct將圖像數據轉換成Caffe能讀取的數據格式leveldb/lmdb -gray=true //whether read gray image -shuffle=true //whether mix order -resize_height=28 -resize_width=28 -backend=lmdb …

leetcode155. 最小棧

設計一個支持 push&#xff0c;pop&#xff0c;top 操作&#xff0c;并能在常數時間內檢索到最小元素的棧。 push(x) -- 將元素 x 推入棧中。 pop() -- 刪除棧頂的元素。 top() -- 獲取棧頂元素。 getMin() -- 檢索棧中的最小元素。 示例: MinStack minStack new MinStack()…

理解Caffe的網絡模型

目錄 1. 初見LeNet原始模型2. Caffe LeNet的網絡結構3. 逐層理解Caffe LeNet 3.1 Data Layer3.2 Conv1 Layer3.3 Pool1 Layer3.4 Conv2 Layer3.5 Pool2 Layer3.6 Ip1 Layer3.7 Relu1 Layer3.8 Ip2 Layer3.9 Loss Layer 1. 初見LeNet原始模型 Fig.1. Architecture of original …

Git(8)-分支

分支1. 分支名2. 創建分支-git branch3. 查看分支-git show-branch4. 檢出分支4.1 有未提交的修改時進行檢出4.2 合并變更到不同的分支git checkout -m5. 分離HEAD 分支6.刪除分支分支操作命令概覽 git branch # 列出版本庫中的分支 git branch -r # 列出遠程跟蹤分支…

caffe開始訓練自己的模型(轉載并驗證過)

學習caffe中踩了不少坑&#xff0c;這里我參考了此博主的文章&#xff0c;并體會到了如何訓練自己的模型&#xff1a;http://www.cnblogs.com/denny402/p/5083300.html 學習caffe的目的&#xff0c;不是簡單的做幾個練習&#xff0c;最終還是要用到自己的實際項目或科研中。因…

leetcode169. 多數元素

給定一個大小為 n 的數組&#xff0c;找到其中的多數元素。多數元素是指在數組中出現次數大于 ? n/2 ? 的元素。 你可以假設數組是非空的&#xff0c;并且給定的數組總是存在多數元素。 示例 1: 輸入: [3,2,3] 輸出: 3 示例 2: 輸入: [2,2,1,1,1,2,2] 輸出: 2 思路&…

Git(9)-diff

分支1. diff in Linux/Unix2. diff in Git3. git diff 兩點語法Linux/Unix 系統中存在diff 命令&#xff0c;可以用來顯示兩個文本/工作路徑的差異。Git diff 在此基礎上進行的擴展。 1. diff in Linux/Unix Linux 系統中的diff 命令&#xff1a;提供了一個文件如何轉化為另一…

圖像拼接(一):柱面投影+模板匹配+漸入漸出融合

這種拼接方法的假設前提是&#xff1a;待拼接的兩幅圖像之間的變換模型是平移模型&#xff0c;即兩幅圖像同名點位置之間只相差兩個未知量&#xff1a;ΔxΔx 和ΔyΔy&#xff0c;自由度為2&#xff0c;模型收得最緊。所以只有所有圖像都是用同一水平線或者同一已知傾斜角的攝…

圖像拼接(二):OpenCV同時打開兩個攝像頭捕獲視頻

使用OpenCV實現同時打開兩個USB攝像頭&#xff0c;并實時顯示視頻。如果未檢測有兩個攝像頭&#xff0c;程序會結束并發出“攝像頭未安裝好”的警告。這里推薦一個小巧的攝像頭視頻捕捉軟件&#xff1a;amcap&#xff0c;使用它可以方便的檢查每個攝像頭是否能正常工作。 捕獲…

Git(10)-merge

Merge1. 無沖突合并2. 有沖突合并-手動解決3. git diff in merge4. 廢棄合并5. 合并策略merge相關的操作的命令 git checkout master git merge alternate # 解決沖突 ..... git add file_1 git commit -m "Add slternate line 5, 6" git reset --hard HEAD # b…

elasticsearch的Linux下安裝報錯問題解決

1.啟動報錯如下: vim /etc/security/limits.conf 然后修改如下 * soft nofile 65536 * hard nofile 65536sudo vi /etc/pam.d/common-session 添加 session required pam_limits.so sudo vi /etc/pam.d/common-session-noninteractive 添加 session required pam_limits.so…

leetcode120. 三角形最小路徑和

給定一個三角形&#xff0c;找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如&#xff0c;給定三角形&#xff1a; [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和為 11&#xff08;即&#xff0c;2 3 5 1 11&#xff0…

Elasticsearchan相關插件和工具安裝

1、下載elasticsearch-head的源碼包 地址&#xff1a;https://github.com/mobz/elasticsearch-head/releases 2、安裝node運行環境 地址&#xff1a;https://nodejs.org/en/download/ 3、安裝完node之后編譯elasticsearch-head 執行npm install -g grunt-cli編譯源碼 執行…

Git(11)-cherry-pick、reset、rebase

更改提交&#xff0c;版本回退1.get reset 重置HEAD指針的指向2.git cherry-pick3.git revert4.git commit --amend修改提交5.git rebase 變基提交5.1 git rebase --onto5.2rebase 產生沖突&#xff0c;解決沖突/終止變基5.3git rebase -i6. rebase Vs mergegit 提供了【修改】…