忽略文件 .gitignore
有些文件無需納入 Git 的管理,也不希望它們總出現在未跟蹤文件列表。可以創建一個名爲 .gitignore 的文件,列出要忽略的文件模式。
文件 .gitignore 的格式規範
所有空行或者以 # 開頭的行都會被 Git 忽略。
可以使用標準的 glob 模式匹配。
匹配模式可以以(/)開頭防止遞歸。
匹配模式可以以(/)結尾指定目錄。
要忽略指定模式以外的文件或目錄,可以在模式前加上感嘆號(!)取反。
glob 模式是指 shell 所使用的簡化了的正則表達式
星號(*)匹配零個或多個任意字符
[abc] 匹配任何一個列在方括號中的字符(這個例子要麼匹配一個 a,要麼匹配一個 b,要麼匹配一個 c)
問號(?)只匹配一個任意字符
如果在方括號中使用短劃線分隔兩個字符,表示所有在這兩個字符範圍內的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數字)。
使用兩個星號(*) 表示匹配任意中間目錄,比如a/**/z
可以匹配 a/z, a/b/z 或 a/b/c/z
等。
測試:忽略所有後綴名爲 txt文件名
GitHub詳細的針對數十種項目及語言的 .gitignore 文件列表https://github.com/github/gitignore
git log 顯示提交日誌
常用查詢 git log --pretty=online
git log查看提交歷史,提交了若干更新,或者克隆了某個項目之後,想看下提交歷史記錄信息,可以使用該命令。
git log不帶任何參數的話,會按提交時間列出所有的更新,最近的更新排在最上面。會列出每個提交的 SHA-1 校驗和、作者的名字和電子郵件地址、提交時間以及提交說明。
git log -p -n 顯示最近n次提交的內容差異。除了顯示基本信息之外,還附帶了每次 commit 的變化。
git log --stat 看到每次提交的簡略的統計信息,在每次提交的下面列出所有被修改過的文件、有多少文件被修改了以及被修改過的文件的哪些行被移除或是添加了。 在每次提交的最後還有一個總結。
git log --pretty 指定使用不同於默認格式的方式展示提交歷史。
git log --pretty=oneline 將每個提交放在一行顯示
git log --pretty=format 定製要顯示的記錄格式
例如:git log --pretty=format:"%h - %an, %ar : %s"
git log --pretty=format 常用的選項
git log --pretty=format --graph選項添加了一些ASCII字符串來形象地展示你的分支、合併歷史。
git log --pretty=format:"%h %s" --graph
git reset 重置改變分支“遊標”指向
測試:回退上一個版本 git reset HEAD^
git reset命令用於將當前HEAD復位到指定狀態。一般用於撤消之前的一些操作(如:git add,git commit等)。
git reset HEAD filename 或 git reset filename 回退文件,將文件從暫存區回退到工作區。HEAD表示當前版本。
git reset HEAD^或git reset HEAD~n :回退版本,一個^表示一個版本,可以多個。如果HEAD指針指向的是master分支,那麼HEAD還可以換成master,如果知道特定的commit-id,那麼還可以直接使用 git reset commit-id 如果不加參數,實際上使用的是默認的參數mixed。
soft 參數:git reset --soft HEAD~1 意爲將版本庫軟回退1個版本,所謂軟回退表示將本地版本庫的頭指針全部重置到指定版本,且將這次提交之後的所有變更都移動到暫存區。
默認的mixed參數:git reset HEAD~1 意爲將版本庫回退1個版本,將本地版本庫的頭指針全部重置到指定版本,且會重置暫存區,即這次提交之後的所有變更都移動到未暫存階段。
hard參數:git reset --hard HEAD~1 意爲將版本庫回退1個版本,但是不僅僅是將本地版本庫的頭指針全部重置到指定版本,也會重置暫存區,並且會將工作區代碼也回退到這個版本。或git reset --hard commit-id。
測試:根據id回退到指定版本