1. 程式人生 > >git學習筆記2——ProGit2

git學習筆記2——ProGit2

配置資訊

Git 自帶一個 git config 的工具來幫助設定控制 Git 外觀和行為的配置變數。 這些變數儲存在三個不同的位置:

  • /etc/gitconfig 檔案: 包含系統上每一個使用者及他們倉庫的通用配置。 如果使用帶有 –system 選項的 git config 時,它會從此檔案讀寫配置變數。
  • ~/.gitconfig~/.config/git/config 檔案:只針對當前使用者。 可以傳遞 –global 選項讓 Git 讀寫此檔案。
  • 當前使用倉庫的 Git 目錄中的 config 檔案(就是 .git/config):針對該倉庫。

你可能會看到重複的變數名,因為 Git 會從不同的檔案中讀取同一個配置(例如:/etc/gitconfig

~/.gitconfig)。 這種情況下,Git 會使用它找到的每一個變數的最後一個配置。
你可以通過輸入 git config <key>: 來檢查 Git 的某一項配置

$ git config user.name
John Doe

獲取幫助

若你使用 Git 時需要獲取幫助,有三種方法可以找到 Git 命令的使用手冊:

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

例如,要想獲得 config 命令的手冊,執行

$ git help
config

這些命令很棒,因為你隨時隨地可以使用而無需聯網。

你還可以嘗試在 Freenode IRC 伺服器( irc.freenode.net )的 #git 或 #github 頻道尋求幫助。

檢視提交歷史

  • git log -p -2:用來顯示每次提交的內容差異。 你也可以加上 -2 來僅顯示最近兩次提交
  • 如果你想看到每次提交的簡略的統計資訊,你可以使用 --stat 選項
  • git log --pretty=oneline--pretyt 指定使用不同格式的方式展示,子選項有onelineshortfullfuller
  • git log --pretty=format:"%h - %an, %ar : %s"
    :定製要顯示的記錄格式
    • %H 提交物件(commit)的完整雜湊字串
    • %h 提交物件的簡短雜湊字串
    • %T 樹物件(tree)的完整雜湊字串
    • %t 樹物件的簡短雜湊字串
    • %P 父物件(parent)的完整雜湊字串
    • %p 父物件的簡短雜湊字串
    • %an 作者(author)的名字
    • %ae 作者的電子郵件地址
    • %ad 作者修訂日期(可以用 –date= 選項定製格式)
    • %ar 作者修訂日期,按多久以前的方式顯示
    • %cn 提交者(committer)的名字
    • %ce 提交者的電子郵件地址
    • %cd 提交日期
    • %cr 提交日期,按多久以前的方式顯示
    • %s 提交說明

你一定奇怪 作者 和 提交者 之間究竟有何差別, 其實作者指的是實際作出修改的人,提交者指的是最後將此工作成果提交到倉庫的人。 所以,當你為某個專案釋出補丁,然後某個核心成員將你的補丁併入專案時,你就是作者,而那個核心成員就是提交者。

  • git log:其他常用選項:

    • -p 按補丁格式顯示每個更新之間的差異。
    • --stat 顯示每次更新的檔案修改統計資訊。
    • --shortstat 只顯示 –stat 中最後的行數修改新增移除統計。
    • --name-only 僅在提交資訊後顯示已修改的檔案清單。
    • --name-status 顯示新增、修改、刪除的檔案清單。
    • --abbrev-commit 僅顯示 SHA-1 的前幾個字元,而非所有的 40 個字元。
    • --relative-date 使用較短的相對時間顯示(比如,“2 weeks ago”)。
    • --graph 顯示 ASCII 圖形表示的分支合併歷史。
    • --pretty 使用其他格式顯示歷史提交資訊。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。
  • 另外還有按照時間作限制的選項,比如 --since--until 也很有用,如git log --since=2.weeks。這個命令可以在多種格式下工作,比如說具體的某一天 "2008-01-15",或者是相對地多久以前 "2 years 1 day 3 minutes ago"

還可以給出若干搜尋條件,列出符合的提交。 用 –author 選項顯示指定作者的提交,用 –grep 選項搜尋提交說明中的關鍵字。 (請注意,如果要得到同時滿足這兩個選項搜尋條件的提交,就必須用 –all-match 選項。否則,滿足任意一個條件的提交都會被匹配出來)

另一個非常有用的篩選選項是 -S,可以列出那些新增或移除了某些字串的提交。 比如說,你想找出新增或移除了某一個特定函式的引用的提交,你可以這樣使用:
$ git log -Sfunction_name

最後一個很實用的 git log 選項是路徑(path), 如果只關心某些檔案或者目錄的歷史提交,可以在 git log 選項的最後指定它們的路徑。 因為是放在最後位置上的選項,所以用兩個短劃線(–)隔開之前的選項和後面限定的路徑名。

  • 限制 git log 輸出的選項
    • -(n) 僅顯示最近的 n 條提交
    • --since, --after 僅顯示指定時間之後的提交。
    • --until, --before 僅顯示指定時間之前的提交。
    • --author 僅顯示指定作者相關的提交。
    • --committer 僅顯示指定提交者相關的提交。
    • --grep 僅顯示含指定關鍵字的提交
    • -S 僅顯示新增或移除了某個關鍵字的提交

舉例:如果要檢視 Git 倉庫中,2008 年 10 月期間,Junio Hamano 提交的但未合併的測試檔案,可以用下面的查詢命令:

$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
   --before="2008-11-01" --no-merges -- t/

零碎筆記

  • git status -s 或者git status --short:簡略資訊輸出
  • git diff --cached:檢視已經暫存的內容的不同(或者git diff --staged
  • git difftool:用Araxis、emerge、vimdiff等軟體輸出diff分析結果,git difftool --tool-help 檢視系統支援的git diff外掛
  • git commit -v:詳細知道做了哪些修改,將在隨後開啟的編輯器中顯示。退出編輯器時,git將丟棄那些產生的註釋(包括簡單註釋和詳細註釋,好像是這麼理解的吧)
  • git commit -a -m "":可以省略add環節
  • git rm --cached 檔案:刪除版本庫中的檔案,但磁碟上仍然保留該檔案(可使用glob表示式)
  • git mv file_from file_to:更名/移動

不想寫了,直接看連結的教程吧。

相關推薦

git學習筆記2——ProGit2

配置資訊 Git 自帶一個 git config 的工具來幫助設定控制 Git 外觀和行為的配置變數。 這些變數儲存在三個不同的位置: /etc/gitconfig 檔案: 包含系統上每一個使用者及他們倉庫的通用配置。 如果使

Git學習筆記2——Git版本庫的創建

文件添加 不但 提交 linu 記錄 例子 blog 所有 out 創建一個版本庫非常簡單,首先,選擇一個合適的地方,創建一個空目錄: $ cd s: $ cd Git_Learing $ pwd s/Git_Learning pwd命令用於顯示當前目錄。在我的wind

Git學習筆記(2)之Git版本回退

.com 分享 nbsp class 文檔 行修改 通過 分享圖片 font     當我們成功將修改過的文件提交到了Git版本庫了之後,突然發現自己有一個問題改錯了,這個時候我們想回退到上一次的版本該怎麽辦呢?幸好Git記錄的是修改,這樣我們就能通過一些方法回退到修改之前

git學習筆記2-一些很重要又很初級的命令和技巧(霜之小刀)

git學習筆記2-一些很重要又很初級的命令和技巧(霜之小刀) 歡迎轉載和引用,若有問題請聯絡 若有疑問,請聯絡 Email : [email protected] QQ:2279557541 本文大量參考了《精通git》 第2版

Git學習筆記2——版本庫建立

什麼是版本庫? 版本庫又名倉庫,英文名repository,可以簡單理解成一個目錄,這個目錄裡面的所有檔案都可以被Git管理起來,每個檔案的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。 建立版本庫 第一步 選擇一個合適

Git學習筆記2:使用前的配置&建立第一個倉庫並配置local使用者資訊&給檔案重新命名的簡便方法

  git使用前的配置: 1.配置User資訊 配置user.name 和 user.email git config --global user.name 'yourName' git config --global user.email 'yourEmail' 這裡的e

2Git學習筆記--Git基本介紹

一、版本控制介紹1、版本控制系統的概念版本控制是一種記錄一個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。 實際上,可以對任何型別的檔案進行版本控制(例如寫作)。2、版本控制系統的型別(1)本地版本控制系統許多人習慣用複製整個專案目錄的方式來儲存不同的版本,或許還會

學習筆記2

建議 coo line 長度 cape 發展 div+css 加載 不兼容 雙標簽: <html><head><title><body><table><tr><td><span>

git 學習筆記總結

upd remove 不常用 常見命令 指定 之前 初始 add manage 換了一家東家以後要用git了,和之前的svn還是有區別的 最明顯的兩個區別就是 1、git 的commit只是提交到本地的一個緩存工作區,git真正提交到中央也就是遠程倉庫的命令是 git pu

Jmeter學習筆記2-原件作用域與執行順序

校驗 height sse proc tro 有效 收集 技術分享 控制 1.元件的作用域 (1)配置元件(config elements):會影響其作用範圍內的所有元件。 (2)前置處理程序(per-processors):在其作用範圍內的每一個sampler元件之

python學習筆記2:字符串

nbsp 大小 alpha .com format 大小寫 fin 判斷大小 key python學習筆記2:字符串 總結:字符串是不可變變量,不能通過下標修改其值    字符串的方法都不會改變字符串原來的值,而是新生成一個字符串 一、3種寫法——單引號,雙引號,三引號  

java 學習筆記2 面向對象(上)

awr ges abs nal mage 有效 面向對象 ima col 類和對象 類是某一批對象的抽象,可以把類理解成某種概念。對象是一個具體存在的實體。類和對象是面向對象的核心。 類定義的是多個實例的特征,類不是具體存在,實例才是具體存在。 定義類(class)的語法:

Git學習筆記——Git安裝

linux版本 輸入 技術分享 源碼安裝 彈出 版本 operator IT學習 user Git是目前世界上最先進的分布式版本控制系統(沒有之一)。 在Linux上安裝Git 首先,你可以試著輸入git,看看系統有沒有安裝Git: $ git The program

Git學習筆記3——工作區與暫存區,以及版本變更

暫存區 所有 cto tag clas 內容 blank 文件 set 工作區(Working Directory) 就是你在電腦裏能看到的目錄,比如我的Git_Learning文件夾就是一個工作區。 版本庫(Repository) 工作區有一個隱藏目錄.git,這個不

Hadoop 學習筆記 (2) -- 關於MapReduce

規模 pre 分析 bsp 學習筆記 reduce 數據中心 階段 圖例 1. MapReduce 定義: 是一種可用於數據處理的編程的模型 優勢: MapReduce 本質上是並行運行的,因此可以將大規模的數據分析任務,分發給任何一個擁有足夠多機器

git學習筆記

git init git add origin readme ignore git學習 推送 初始 遠程 導入新項目 1.進入項目根目錄 cd xxx 2. 初始化git git init 3. 創建readme文件 touch README.md 4. 添加readm

Git學習筆記(一)

編譯 缺點 watermark 索引 規範 存在 alt 回退 dsm 版本號控制系統簡單介紹 版本號控制系統是一種記錄若幹文件內容變化。以便將來查閱特定版本號修訂情況的系統。該系統不僅能夠度軟件源碼的文本文件進行版本號控制管理。也能夠對不論什麽其它類型的文件進行版本號

Git 學習筆記

過去 git reset new val [] hello reset 初始 using 1, git init 初始化  E:\MyProject>git init   Initialized empty Git repository in E:/MyProjec

算法導論學習筆記(2)-歸並排序

mar 今天 iostream 介紹 font 額外 遞歸 size dsm 今天學習了算法導論上的歸並排序算法,而且完畢了在紙上寫出偽代碼,曾經就學過歸並可是理解的不夠透徹。以 前還一直困惑:為什麽明明歸並排序比快排的時間復雜度更穩定。為什麽庫函數不用歸

ESP8266學習筆記2:實現ESP8266的局域網內通信

pro reg sad net nts 理解 模式 curl ont 上一篇熟悉了編譯下載操作。如今就以實例入手。project使用的是IOT_DEMO,據DEMO文檔能夠知道ESP8266初始工作模式為softAP+station共存的模式。於是這邊我們就先以soft