亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將Git托管項目中的所有本地更改恢復到以前的狀態?

如何將Git托管項目中的所有本地更改恢復到以前的狀態?

Git
開心每一天1111 2019-10-23 15:07:20
我有一個運行的項目git init。經過幾次提交后,我git status告訴我所有內容都是最新的,并且沒有本地更改。然后,我進行了幾次連續更改,意識到我想扔掉所有東西并恢復到原始狀態。這個命令會幫我嗎?git reset --hard HEAD
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

如果要還原對工作副本所做的更改,請執行以下操作:


git checkout .

如果要還原對索引所做的更改(即已添加的內容),請執行此操作。警告這會將您所有未推送的提交重置為master?。?/p>


git reset

如果要還原已提交的更改,請執行以下操作:


git revert <commit 1> <commit 2>

如果要刪除未跟蹤的文件(例如,新文件,生成的文件):


git clean -f

或未跟蹤的目錄(例如,新目錄或自動生成的目錄):


git clean -fd


查看完整回答
反對 回復 2019-10-23
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

注意:您可能還想運行


git clean -fd


git reset --hard

將不刪除未跟蹤文件,其中為git的清潔將從跟蹤根目錄不在下git的跟蹤中刪除任何文件。警告-請務必小心!首先使用git-clean進行空運行會很有幫助,以查看它將刪除什么。


當您收到錯誤消息時,這也特別有用


~"performing this command will cause an un-tracked file to be overwritten"

這可能會在執行多項操作時發生,一種是當您和您的朋友都添加了一個同名的新文件時更新工作副本,但他先將其提交到了源代碼管理中,并且您不必擔心刪除未跟蹤的副本。


在這種情況下,進行空運行還將幫助您顯示將被覆蓋的文件列表。


查看完整回答
反對 回復 2019-10-23
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

重新克隆

GIT=$(git rev-parse --show-toplevel)

cd $GIT/..

rm -rf $GIT

git clone ...

s刪除本地非推送的提交

還原對跟蹤文件所做的更改

s恢復已刪除的跟蹤文件

s刪除列出的文件/目錄.gitignore(如構建文件)

s刪除未跟蹤且不在其中的文件/目錄 .gitignore

?您不會忘記這種方法

?浪費帶寬

以下是我每天都會忘記的其他命令。


清理并重置

git clean --force -d -x

git reset --hard

s刪除本地非推送的提交

還原對跟蹤文件所做的更改

s恢復已刪除的跟蹤文件

s刪除列出的文件/目錄.gitignore(如構建文件)

s刪除未跟蹤且不在其中的文件/目錄 .gitignore

清潔

git clean --force -d -x

s刪除本地非推送的提交

還原對跟蹤文件所做的更改

s恢復已刪除的跟蹤文件

s刪除列出的文件/目錄.gitignore(如構建文件)

s刪除未跟蹤且不在其中的文件/目錄 .gitignore

重啟

git reset --hard

s刪除本地非推送的提交

還原對跟蹤文件所做的更改

s恢復已刪除的跟蹤文件

s刪除列出的文件/目錄.gitignore(如構建文件)

s刪除未跟蹤且不在其中的文件/目錄 .gitignore

筆記

確認以上所有條件的測試用例(使用bash或sh):


mkdir project

cd project

git init

echo '*.built' > .gitignore

echo 'CODE' > a.sourceCode

mkdir b

echo 'CODE' > b/b.sourceCode

cp -r b c

git add .

git commit -m 'Initial checkin'

echo 'NEW FEATURE' >> a.sourceCode

cp a.sourceCode a.built

rm -rf c

echo 'CODE' > 'd.sourceCode'

也可以看看


git revert 進行新的提交以撤消先前的提交

git checkout 及時返回到先前的提交(可能需要先運行以上命令)

git stash與git reset上述相同,但是您可以撤消它


查看完整回答
反對 回復 2019-10-23
  • 3 回答
  • 0 關注
  • 1792 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號