1.放棄本地更改,未add,未commit
?git checkout filename
注:與git checkout branch 區別
2.放棄已add未commit的更改
git reset HEAD filename? ? ? ? ? ? ? ?---------------只是撤銷add 操作,本地修改不會丟失
3.放棄已經commit的修改
git reset --hard HEAD^? ? ? ? ? ? ? ? ? ----------------回到上次commit的狀態
git reset --hard HEAD^^? ? ? ? ? ? ? ? ------------------回到前兩次提交
git reset --hard commitid
4.放棄已經push的修改
? ?1>git reset HEAD? ? ? ? ? ? ? ? ? ? ?--------------------只是把HEAD指針向后移動
? ? 2>git revert commitID? ? ? ? ? ? ?--------------------提交一個新的版本,將之前的版本覆蓋當前的版本,版本會遞增,不影響想要放棄的已push的修改,而revert之后的版本遞增,但是push的內容還在,只是存在于上一個版本
?
?
git reflog -------------產看commit日志
git reset --hard commitid? ? ? ? ---------------回到commitid
---------------------
作者:dreamgzd
來源:CSDN
原文:https://blog.csdn.net/qq_40719649/article/details/82458293
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
- 其他
- Git submodule 如何刪除一個 submodule
- 解 git submodule 無映射路徑的問題
- 刪除分支
- git revert
- 基本命令
- git reset的三種模式
- ignore的使用
- git tag
- 用戶相關
- 問題
- 重命名遠程分支
- 注意事項
- GIT里設置大小寫敏感
- 如何處理git每次提交都輸入密碼
- Git 工作流程
- 詳細使用
- git 放棄更改
- 子模塊兒
- 增加子模塊兒
- 刪除子模塊兒
- 更新子模塊兒
- 分支
- 分支(branch)操作
- git刪除遠程分支和本地分支
- 項目屬于哪個分支
- 標簽(tag)操作
- 命令
- branch
- remote
- clone
- tag
- log
- reflog
- diff
- reset
- merge
- push
- pull
- submodule
- 分支命名