- 追溯哪句代碼是誰改的:
- $ git log -p [filename]
顯示文件所有詳細的修改記錄,信息非常全孩锡,慢慢找 - $ git log -L 1,2:[filename]
顯示文件1-2行的更改記錄鸟顺,通過行數(shù)縮小范圍 - $ git blame [filename]
顯示的是每一行‘最后’是誰改的惦蚊,如果只是追查最后的結果,比上一種好找
- commit丟失怎么找诊沪?
- $ git reflog
可以查看所有commit的ID:reset后的养筒、rebase中的、pull的端姚、merge的。它的盡頭就是clone或init.
- commit信息寫錯挤悉、代碼寫錯渐裸、把后一次提交合并到前一次
- 若沒push到遠程:
- $ git add [files] (添加修改文件到暫存區(qū))
- $ git commit --amend (進入文本編輯模式修改commit信息)
- 已經(jīng)push到遠程:
- $ git revert HEAD (撤銷上一次commit的內(nèi)容(并且會提交一次))
- 非要改巫湘,必須確認本地代碼沒問題的條件下,git push -f 重寫遠程的歷史記錄 非常危險昏鹃,慎重使用
- 新功能開發(fā)到一半尚氛,想回到舊代碼測試或者改bug
- 創(chuàng)建一個分支,把修改commit到新分支上存起來(一般都會的操作洞渤,不演示命令了)
- $ git stash 默認暫存所有的更改,代碼回到上一次commit的狀態(tài)阅嘶;
- $ git stash pop 取回暫存的更改。
- $ git stash list 查看所有 stash
- $ git stash drop 刪除最新 stash
- $ git stash clear 刪除所有stash
- 注:若pop前有文件修改载迄,也會保留修改讯柔;有沖突的話會有提示