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