git reset + commit號 git reset命令后面是需要加2種參數(shù)的:"--hard"和"--soft"。這條命令默認情況下是"--soft"。執(zhí)行上述命令時,這該條commit號之后(時間作為參考點)的所有commit的修改都會退回到git緩沖區(qū)中。使用git status命令可以在緩沖區(qū)中看到這些修改。而如果加上"--hard"參數(shù),則緩沖區(qū)中不會存儲這些修改,git會直接丟棄這部分內(nèi)容。但需要注意的一個問題是:由于這樣的重置是直接在本地的修改,無法提交到遠程服務(wù)器,如果直接丟棄的內(nèi)容已經(jīng)被推到遠程服務(wù)器上了,則會造成本地和服務(wù)器無法同步的問題。即git reset --hard只能針對本地操作,不能針對遠程服務(wù)器進行同樣操作。如果從本地刪掉的內(nèi)容沒有推到服務(wù)器上,則不會有副作用;如果被推到服務(wù)器,則下次本地和服務(wù)器進行同步時,這部分刪掉的內(nèi)容仍然會回來。 而上面注意中提到的問題則可以很好的被git revert 命令解決。 git revert + commit 號 該命令撤銷對某個commit的提交,這一撤銷動作會作為一個新的修改存儲起來,這樣,當你和服務(wù)器同步時,就不會產(chǎn)生什么副作用。 |
|