git reflog 可以查看所有分支的所有操作記錄(包括(包括commit和reset的操作),包括已經(jīng)被刪除的commit記錄抄瓦,git log則不能察看已經(jīng)刪除了的commit記錄
具體一個例子妈橄,假設(shè)有三個commit厦凤, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
如果執(zhí)行g(shù)it reset --hard HEAD~1則 刪除了commit3枢纠,如果發(fā)現(xiàn)刪除錯誤了肤寝,需要恢復(fù)commit3当辐,這個時候就要使用git reflog
HEAD@{0}: HEAD~1: updating HEAD
63ee781 HEAD@{1}: commit: test3:q
紅色加粗的即是被刪除了的 commit3,運行g(shù)it log則沒有這一行記錄
可以使用
git reset --hard?63ee781?
將紅色記錄刪除鲤看,則恢復(fù)了cmmit3缘揪,運行g(shù)it log后可以看到:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
這里也可以使用另外一種方法來實現(xiàn):
git cherry-pick?63ee78
git status //查看狀態(tài)
git config alias.st status//起別名,只在當(dāng)前項目里有效
git config alias.ci commit
git config —global alias.st status//全局的別名
git log main.c//查看main.c的所有日志
git log文件名
git reflog main.c
git reset —hard HEAD^//—hard 代表強制HEAD^ 代表上一個版本
git reset —hard id //回到任一個版本
git diff main.c//查看文件修改前后的不同义桂,如果不加文件名找筝,則顯示所有的修改
git checkout main.c //未提交代碼時,回退到上一次提交的版本
git reset —hard HEAD //回退到上一次提交的版本
git clone 服務(wù)器地址 //從服務(wù)器克隆代碼
git tag -a v1.0 -m ‘Version 1.0’ //在本地代碼庫給項目打一個標(biāo)簽
git tag //查看當(dāng)前標(biāo)簽
git push origin v1.0 //講標(biāo)簽推送到遠程代碼庫中
git checkout v1.0 //導(dǎo)出標(biāo)簽為v1.0的代碼
git checkout -b fixbug1.0 //創(chuàng)建新的分支fixbug1.0
git branch -r //查看遠程分支