【本地代碼回退】
git reset --hard commit-id :回滾到commit-id,講commit-id之后提交的commit都去除
git reset --hard HEAD~3:將最近3次的提交回滾
這兩個操作只是把commit回退,再次push還是回到原位。所以需要同步rebase
git pull --rebase
將遠程的HEAD指針和本地的HEAD指針同步
A1~HEAD A2~HEAD A3~ another commit
B1~HEAD B2~HEAD
遠程有A和B共同的HEAD,本地只有A或B的HEAD,只有rebase一下就不會提交歷史短線
回退:是自己本地的HEAD大於遠程的HEAD,本地還有回退的代碼為提交,所以rebase在同步遠程的HEAD會把沒有提交的代碼給覆蓋掉。
正常提交:情況一是自己本地的HEAD等於遠程的HEAD,但自己本地的HEAD會小於遠程有其他人提交的HEAD,所以同步HEAD的時,不會有代碼被覆蓋。