〈為你自己學Git〉閱讀筆記

January 17, 2018

對於 Git 還是始終不太熟悉,於是在朋友推薦下入手了這本書

原本想買另一本歐若禮更複雜更難那本,但先看完這本再說吧!

底下簡單留下自己的閱讀筆記,大部分應該都是網路找的到的指令


使用者設定

# 設定
git config --global user.name "name"
git config --global user.email "email@mail.com"
# 檢視
git config --list
# local 不同作者
git config --local user.name "foo"
git config --local user.email "bar@foo.com"

local 設定可以針對工作上切換成工作 Email ,在 global 方面就是 GitHub 帳戶


自訂縮寫

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status

也可以對附加參數做縮寫

git config --global alias.l "log --oneline --graph"
git l # 等同 git log --oneline --graph 意思
# 也可以把 commit msg 包含進來
git config --global alias.ls 'log --graph --pretty=format:"%h <%an> %ar %s"'

也可以直接在 ~/.gitconfig 修改

[alias]
  co = checkout
  br = branch
  st = status
  l = log --oneline --graph
  ls log --graph --pretty=format="%h <%an> %ar %s"


commit

懶惰單行 add + commit : git commit -a -m "update content"


查看 log

只找某人的 log

git log --oneline --author="somebody"
# 查找兩人
git log --oneline --author="someone/|anotherone"

用正則表達式搜尋

git log --oneline --grep "wtf"

搜尋哪些 commit 有用到這個字

git log -S "someword"

查找時間

git log --oneline --since="9am" --until="12am"
# 從特定日期起的指定時間
git log --oneline --since="9am" --until="12am" --after="2017-01"


修改 commit 紀錄

修改最後一次的 commit message

git commit --amend -m "new message"

追加檔案到最新一次的 commit 中

git add 某個檔案
git commit --amend --no-edit

對於空目錄可以放 palceholder 檔名可以叫做 .gitkeep.keep


gitignore

清除忽略的檔案,假如忽略的檔案是一些記錄或暫存檔案

使用指令 git clean -fX


git log

看特定檔案的 commit 紀錄 git log XXXXX.html

看檔案每一行是什麼時候被改的,抓兇手用的 git blame XXXX.html


檔案刪除

如果有檔案被刪除想找回來,可以使用 checkout : git checkout 被刪除檔案

如果想把所有刪除檔案找回來,可以使用 git checkout .

如果要拿兩個版本之前的,可以使用 git checkout HEAD~2 某個檔案 來使用


commit 後悔

使用

git reset master^
git reset HEAD^

回到前一次 commit ,一個 ^ 就代表往回一次,N 次可用 ~N 的方法


參考資料

  1. 為你自己學 Git - 高見龍
Tags: reading git