git checkout -- filename? 將工作區(qū)的修改后的文件回退到上一個工作區(qū)文件版本狀態(tài)(即該文件沒修改前),一般我們覺得對文件所做的修改為無用操作時因谎,想撤銷回到修改前可使用此操作
git reset HEAD filename 將緩存區(qū)某文件回退到上一緩存版本闹获,該操作對工作區(qū)沒有影響(暫存區(qū))
git reset --hard HEAD filename ?帶上--hard參數(shù)后則是將暫存區(qū)和工作區(qū)的文件強行回退(暫存區(qū)+工作區(qū))
git reset --mixed HEAD filename? 帶上--hard參數(shù)后則是將版本庫和暫存區(qū)的文件強行回退(版本庫+暫存區(qū))
git reset --soft HEAD filename? 帶上--hard參數(shù)后則是將版本庫的文件強行回退(版本庫)
git reset 版本號(版本表示) 將緩存區(qū)回退到特定版本期犬,不影響工作區(qū)文件
git commit --amend ?撤銷上一次提交,并將暫存區(qū)(緩存區(qū))文件重新提交
git checkout ?--filename ?拉取暫存區(qū)的文件避诽,并將其替換工作區(qū)的文件(也即是回退到工作區(qū)上一版本(即暫存區(qū)目前版本))龟虎,注意該命令和 git checkout branchname 命令的區(qū)別,后者是切換到其他分支
git reset HEAD --filename ?拉取最近一次提交的版本庫中的文件到暫存區(qū)沙庐,該操作不影響工作區(qū)
如果想將版本庫的文件拉取到工作區(qū)鲤妥,需先將版本庫文件拉倒暫存區(qū),再從暫存區(qū)拉取到工作區(qū)拱雏,即git reset HEAD --filename棉安,git checkout? --filename兩條命令依次執(zhí)行
git文件刪除
git rm filename 刪除工作區(qū)及暫存區(qū)中的文件,相當于刪除文件后執(zhí)行git add,即等效 rm filename,git add
git rm --cached filename 在不小心將不需要追蹤的文件添加到暫存區(qū)后铸抑,想刪除暫存的文件但是不想刪除工作區(qū)的文件(即僅僅只刪除暫存區(qū)的文件)---》適用應用場景 .gitignore git遠程倉庫
git rm -f filename 當工作區(qū)或者暫存區(qū)文件修改了贡耽,防止把修改文件誤刪除
git mv filename ? 相當于 1.mv oldname newname ? ? 2.git rm oldname ? 3.git add newname ? ? ?即將工作區(qū)文件改名,將新文件添加到暫存區(qū),并刪除暫存區(qū)的老文件