git 學習(三)顯示及git reset 解析

2021-09-24 22:29:15 字數 1774 閱讀 9703

git 的提交通過shai雜湊值作為提交id,的確做到了「全球唯一」。

使用master代表分支master中最新的提交,也可以使用全稱refs/heads/master或

heads/master。

使用head代表版本庫中最近一次提交。

符號^可以用於指代父提交。

head^代表版本庫中的上一次提交,即最近一次提交的父提交。

head^^則代表head^的父提交。

顯示簡短的log

git log --graph --oneline

git log --oneline 兩種是一樣的效果

建立新的檔案

touch new-commit.txt

提交並且寫入描述

git commit -m "doesf master follow this new commit?"

引用refs/heads/master就好像是乙個游標,在有新的提交發生的時候指向了新的提交。

可是如果只可上不可下,就不能成為「游標」。

退回上乙個id的提交

git reset --hard head^

顯示整個檔案

cat filename

從鍵盤建立乙個檔案

cat > filename

tail 命令可用於檢視檔案的內容,有乙個常用的引數 -f 常用於查閱正在改變的日誌檔案。

tail -f filename 會把 filename 檔案裡的最尾部的內容顯示在螢幕上,並且不斷重新整理,只要 filename 更新就可以看到最新的檔案內容。

-f 迴圈讀取

-q 不顯示處理資訊

-v 顯示詳細的處理資訊

-c《數目》 顯示的位元組數

-n《行數》 顯示檔案的尾部 n 行內容

--pid=pid 與-f合用,表示在程序id,pid死掉之後結束

-q, --quiet, --silent 從不輸出給出檔名的首部

-s, --sleep-interval=s 與-f合用,表示在每次反覆的間隔休眠s秒

重置master為兩次改變之前的值

git reset --hard master@

git reset head 相當於取消之前執行的git add .

git reset [--soft | --mixed | --hard]

--hard

1.替換引用的指向。引用指向新的提交id.

2.替換暫存區。替換後,暫存區的內容和引用指向的目錄樹一致。

3.替換工作區。替換後,工作區的內容變得和暫存區一致,也和head所指向的目錄樹內容相同。

--soft

1.替換引用的指向。引用指向新的提交id. 即只更改引用的指向,不改變暫存區和工作區。

--mixed 或者不適用引數

1.替換引用的指向。引用指向新的提交id.

2.替換暫存區。替換後,暫存區的內容和引用指向的目錄樹一致。

即更改引用的指向及重置暫存區,但是不改變工作區。

git reset

僅用head指向的目錄樹重置暫存區,工作區不會受到影響,相當於將之前用git add 

命令更新到暫存區的內容撤出暫存區。引用也未改變,因為引用重置到head相當於沒有重置。

git reset head

同上git reset -- filename

僅將檔案filename的改動撤出暫存區,暫存區中其他檔案不改變。相當於對命令

git add filename 的反向操作。

git reset head filename

同上

Git學習之路(三) 配置Git

第一次使用git時,需要對git進行一些配置,以方便使用git。不過,這種配置工作只需要進行一次便可,日後對git進行公升級時,會沿用現在的配置。配置使用者資訊的作用是用於標識追蹤提交 的操作者。比如說,在團隊協作中,如果對某一部分 有疑問,便可以通過該使用者資訊定位到是誰提交的這部分 便可以找他進...

git學習總結 三

git remote git remote rm git remote add origin git server name path repo name.git git push u origin master,第一次推送master分支的所有內容,此後,每次本地提交後,只要有必要,就可以使用命令...

Git 學習筆記三

遠端倉庫 git是分布式版本控制系統,同乙個git倉庫,可以分布到不同的機器上。怎麼分布呢?最早,肯定只有一台機器有乙個原始版本庫,此後,別的機器可以 轉殖 這個原始版本庫,而且每台機器的版本庫其實都是一樣的,並沒有主次之分。github,為git提供倉庫託管服務的,不多作介紹。註冊乙個github...