第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用'git reset --hard HEAD'恢復(fù)到先前的提交?

如何使用'git reset --hard HEAD'恢復(fù)到先前的提交?

Git
慕虎7371278 2019-12-07 13:18:38
我知道Git會(huì)跟蹤我對(duì)應(yīng)用程序所做的更改,它會(huì)一直保留到它們,直到我提交更改為止,但這是我掛斷的地方:當(dāng)我想恢復(fù)到以前的提交時(shí),我使用:git reset --hard HEADGit返回:HEAD is now at 820f417 micro然后,如何將硬盤(pán)驅(qū)動(dòng)器上的文件還原到先前的提交?我的下一步是:git add .git commit -m "revert"但是我的硬盤(pán)上沒(méi)有任何文件已更改...我在做什么對(duì)/錯(cuò)?
查看完整描述

2 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

首先,始終要注意這git reset --hard是一個(gè)潛在的危險(xiǎn)命令,因?yàn)樗鼤?huì)丟棄所有未提交的更改。為了安全起見(jiàn),git status在使用前,請(qǐng)務(wù)必檢查其輸出是否干凈(即為空)。


最初,您說(shuō)以下內(nèi)容:


因此,我知道Git會(huì)跟蹤我對(duì)應(yīng)用程序所做的更改,它會(huì)一直保留到它們,直到我提交更改為止,但這是我掛斷的地方:


不對(duì) Git僅在暫存文件(帶有g(shù)it add)或創(chuàng)建提交時(shí)記錄文件的狀態(tài)。一旦創(chuàng)建了一個(gè)使項(xiàng)目文件處于特定狀態(tài)的提交,它們就非常安全,但是直到那時(shí)Git才真正對(duì)文件進(jìn)行“跟蹤”。(例如,即使您git add要暫存文件的新版本,也會(huì)覆蓋暫存區(qū)域中該文件先前已暫存的版本。)


在您的問(wèn)題中,然后繼續(xù)詢(xún)問(wèn)以下內(nèi)容:


當(dāng)我想恢復(fù)到以前的提交時(shí),我使用:git reset --hard HEAD git返回:HEAD現(xiàn)在位于820f417 micro


然后,如何將硬盤(pán)驅(qū)動(dòng)器上的文件還原到先前的提交?


如果您這樣做,git reset --hard <SOME-COMMIT>那么Git將:


使您當(dāng)前的分支(通常master)回到<SOME-COMMIT>。

然后,使工作樹(shù)中的文件和索引(“暫存區(qū)”)與中提交的版本相同<SOME-COMMIT>。

HEAD指向您當(dāng)前的分支(或當(dāng)前的提交),因此所有g(shù)it reset --hard HEAD要做的就是丟棄您具有的所有未提交的更改。


因此,假設(shè)您要返回的良好提交是f414f31。(您可以通過(guò)git log或任何歷史記錄瀏覽器找到它。)然后,根據(jù)實(shí)際要執(zhí)行的操作,您可以有幾個(gè)不同的選擇:


更改您當(dāng)前的分支以指向較早的提交。您可以使用git reset --hard f414f31。但是,這是在重寫(xiě)分支的歷史記錄,因此,如果您已與任何人共享此分支,則應(yīng)避免使用它。另外,您之后所做的提交f414f31將不再位于master分支的歷史記錄中。

創(chuàng)建一個(gè)新提交,該提交表示與項(xiàng)目完全相同的項(xiàng)目狀態(tài)f414f31,但是只需將其添加到歷史記錄中,這樣就不會(huì)丟失任何歷史記錄。您可以使用此答案中建議的步驟進(jìn)行操作,例如:


git reset --hard f414f31

git reset --soft HEAD@{1}

git commit -m "Reverting to the state of the project at f414f31"


查看完整回答
1 反對(duì) 回復(fù) 2019-12-07
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

警告:git clean -f將刪除未跟蹤的文件,這意味著它們永久消失了,因?yàn)樗鼈儧](méi)有存儲(chǔ)在存儲(chǔ)庫(kù)中。在執(zhí)行此操作之前,請(qǐng)確保您確實(shí)要?jiǎng)h除所有未跟蹤的文件。


試試看,看看git clean -f。


git reset --hard不會(huì)刪除未跟蹤的文件,而git-clean將從根目錄中刪除所有不在Git跟蹤下的文件。


或者,就像@Paul Betts所說(shuō)的,您可以執(zhí)行此操作(請(qǐng)注意-也會(huì)刪除所有忽略的文件)


git clean -df

git clean -xdf 警告!這也會(huì)刪除忽略的文件


查看完整回答
反對(duì) 回復(fù) 2019-12-07
  • 2 回答
  • 0 關(guān)注
  • 5046 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)