21.查看不一樣版本直接的變更和差別
情景:某次將本身的分支版本和遠程master合併解決衝突後發現之前可以正常運行的程序的沒法正常運行了
但又忘記合併解決衝突時修改了哪些代碼。
解決方案:
1- 經過git log 查找某次commit的hash值
git log --graph --oneline --decorate
![](https://images0.cnblogs.com/blog2015/434879/201504/291038262401017.png)git
2- 查看那些文件發生了變化(HEAD是當前分支版本能夠換成其餘的)
git diff 2fcbff8..HEAD --statblog
3- 查看具體變化
git diff 2fcbff8..HEAD
get
4-查看文件的每個詳細的歷史修改,若是沒有-p選項,只顯示提交記錄,不顯示文件內容修改hash
git log –p filenameit
git log –p –3 filename //顯示ast
5- 查看文件的每一行是哪一個提交最後修改的test
git blame filenamefile
6- 查看載入但並未提交的文件差別程序
git diff --stagedim
git diff 和git log -p效果是同樣的
7- 列出某個文件的具體修改歷史而後再經過commit的hash值查看某次改動的具體修改
git log --oneline test.cpp
git show 12e9624cae843f2b5 //某個具體修改的hash值
8- 查看載入但並未提交的變動
git diff --stage
9- 在合併某分支前查看變動內容
git diff dev...master
22.文件刪除與重命名
git rm test.cpp //刪除,這與直接rm掉是有區別的
git mv test.cpp test.hpp //重命名,這兩個操做記得都要提交哦
23.文件恢復
git reset 9aa51d89799716aa68cff3f test.cpp //經過hash恢復到某個歷史版本
git reset test.cpp //沒有提交的話能夠恢復到當前版本HEAD.....完善中