看了[為你自己學Git]的常用Git指令筆記
看了為你自己學Git,五倍紅寶石,高見龍大師著作(這本真的釐清很多我對git一知半解的觀念,大推)
以下整理筆記,提供日後個人查詢使用~
常用指令
git add (陷阱觀念:p38),add完再edit file,新的變更不會進入暫存區,必須再執行一次add
註:若針對os指令做檔案操作,變更都要透過git add,加入暫存區,若是使用git mv、git rm的話,是git在背後幫我們做掉2段式動作
git status
git commit -m "變更訊息"
git log (純粹訊息時間)
git log -p (多列出版本之間差異)
git log -g (reflog)
git log --oneline
git log --oneline --since="" --until=""
git log --oneline --grep="查詢log message字眼"
git log -S "檔案內容指定字眼"
git rm <file> --cached(僅從git移除管控,但會保留檔案,變成untracked file)
git commit --amend -m "修改最後一次commit的訊息"
git commit --amend --no-edit (不修改訊息,併入變更到最後一次修改-變更須先add到暫存區)
git blame -L 1,5 <file> (顯示第1到第5行的變更簽入者, 抓戰犯XD)
.gitignore可管理不要被git,忽略這個規則,強迫加入的話
git add -f <filename>
git clean -fX(一口氣刪除被忽略的檔案)
不小心本地刪掉檔案,可以用checkout救回,git checkout <file> or . (取回檔案)
git reset --hard(回到head變更狀態)
git reset <commit>^ 拆掉指定commit,回到前
1次,^^代表上2次,也可以使用~,~1代表上一次,~5代表前5次
git reset mode有 --mixed, --soft --hard
工作目錄 暫存區
mixed 不變 丟掉
soft 不變 不變 (僅移動head)
hard 丟掉 丟掉
如果不小心使用hard模式 reset了某個commit,救的回來嗎?
git reset <之前的commit> --hard(--hard可以強迫放棄reset之後修改的檔案)
若忘了git 的commit,這時就使用git reflog或是git log -g可以查到之前的commit
待續