3 回答

TA貢獻1877條經驗 獲得超1個贊
如果要還原對工作副本所做的更改,請執行以下操作:
git checkout .
如果要還原對索引所做的更改(即已添加的內容),請執行此操作。警告這會將您所有未推送的提交重置為master?。?/p>
git reset
如果要還原已提交的更改,請執行以下操作:
git revert <commit 1> <commit 2>
如果要刪除未跟蹤的文件(例如,新文件,生成的文件):
git clean -f
或未跟蹤的目錄(例如,新目錄或自動生成的目錄):
git clean -fd

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"
這可能會在執行多項操作時發生,一種是當您和您的朋友都添加了一個同名的新文件時更新工作副本,但他先將其提交到了源代碼管理中,并且您不必擔心刪除未跟蹤的副本。
在這種情況下,進行空運行還將幫助您顯示將被覆蓋的文件列表。

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上述相同,但是您可以撤消它
- 3 回答
- 0 關注
- 1792 瀏覽
添加回答
舉報