柚子快報(bào)邀請碼778899分享:git常用撤回命令
柚子快報(bào)邀請碼778899分享:git常用撤回命令
1.常用概念
工作區(qū)(工作代碼):現(xiàn)在的代碼,包括了在之前提交基礎(chǔ)上的增刪改查操作 未修改:代碼自上次提交未修改 未追蹤(untracked):新建的文件|被.gitignore忽略的文件(未納入git版本控制),可通過git add . 納入版本控制,變?yōu)橐炎粉櫊顟B(tài) 已追蹤(tracked):被納入git版本控制中的文件(新創(chuàng)建的文件被git add .即可被追蹤|已經(jīng)存在的已追蹤文件就是已追蹤狀態(tài))
未暫存(unstaged):修改了的文件 已暫存(staged):git add . 添加的未暫存文件 已提交:通過git commit -m ‘xxxx’ 提交的文件,提交后所有已追蹤的文件將變?yōu)槲葱薷臓顟B(tài)(不是未暫存也不是已暫存狀態(tài))
上次提交:上次commit后的代碼
2.常用撤回命令
以下的 . 均可以用文件名替代
對于已追蹤的文件 git restore --staged . //將文件(未暫存/已暫存) 退回到未暫存狀態(tài) 但保留所有修改
git restore . //將文件(未暫存/已暫存) 退回到未修改狀態(tài) 并撤回所有修改
git checkout . //將文件(未暫存/已暫存) 退回到未修改狀態(tài) 并撤回所有修改(與git restore . 完全相同)
對于未追蹤的文件 (即新建的文件) git clean -n 查看要?jiǎng)h除的未追蹤文件
git clean -f 刪除所有未追蹤文件
3.常見實(shí)用環(huán)境匯總
回到上次提交的代碼(即我這次一頓亂寫進(jìn)行的修改全不想要了,想全不保存,想回到最初的起點(diǎn)) git reset --hard 或 git checkout .
回到某次提交的代碼,但想保留我這次進(jìn)行的所有修改(即由于我很菜,進(jìn)行了很多次提交,不想再要中間這些提交了,比如我為了改一個(gè)bug提交了40次,但最后推到遠(yuǎn)程我只想顯示有一次提交) git log //查看一下你想回到的那次提交的hash
git reset --soft 你查到的hash值
新建了某個(gè)文件,顯示未追蹤,但是不想要了 git clean -n
git clean -f
不小心對某個(gè)文件進(jìn)行了修改,想讓它變回未修改時(shí)(上次提交)的樣子。(或者當(dāng)你要提交的文件很多時(shí),發(fā)現(xiàn)某個(gè)文件不應(yīng)該被改變但不知道什么時(shí)候改了,不該提到線上) git checkout filepath //filepath是你想撤回的文件路徑
想回到git add .前的狀態(tài),即未暫存的狀態(tài),但是保存現(xiàn)在更改的代碼 git restore --staged .
柚子快報(bào)邀請碼778899分享:git常用撤回命令
推薦鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。