Git重置(Reset)與撤銷:區別與適用場景
Git中“重置(Reset)”與“撤銷(Undo)”原理和影響不同:Reset直接改寫歷史,適用於本地未push的“草稿”場景;Undo通過新提交或恢復操作保留歷史,適用於需保留痕跡(如遠程分支)的錯誤糾正。 Reset分三種模式:`--soft`僅移動HEAD,暫存區/工作區不變,適合修改提交信息;`--mixed`移動HEAD並重置暫存區,適合撤銷誤`add`的文件;`--hard`徹底重置工作區,適合丟棄本地錯誤修改。 Undo核心是不改寫歷史:`git revert`創建反向提交,保留遠程歷史;`git checkout`恢復文件或分支;`git commit --amend`修改最近提交;`git stash`暫存未提交修改。 關鍵區別:Reset改歷史(本地未push),Undo留痕跡(遠程或需歷史)。避坑:遠程錯誤用Revert,本地未push用Reset,慎用`--force`。
閱讀全文