最近事情多,幾天沒休息好,寫**有點神遊物外,所有就遇到了git reset後,想再恢復的情況,只記得有這功能但不知道怎麼操作,查了一番記錄一下。
reset會修改head的指向,但不會建立新的分支
--soft – 快取區和工作目錄都不會被改變
--mixed – 預設選項。快取區和你指定的提交同步,但工作目錄不受影響
--hard – 快取區和工作目錄都同步到你指定的提交
一旦reset head~***,head就會指向歷史commit,之後的commit其實還在,但看不到了
如果在此基礎上有新的提交,就真的丟棄了head之後的提交
但萬一不小心reset的過多了,或者手誤了,如何恢復呢?
使用git relog
git relog類似於mysql的undolog,記錄了本地所有分支的git操作記錄,
git relog檢視過往的reset命令
可以看到reset之前的提交commit log
如果要恢復,只需要再次git reset 4665343c就可以了
git revert和git reset的區別
原文 git revert 是生成乙個新的提交來撤銷某次提交,此次提交之前的commit都會被保留 git reset 是回到某次提交,提交及之前的commit都會被保留,但是此次之後的修改都會被退回到暫存區 具體乙個例子,假設有三個commit,git st commit3 add test3.c...
git revert和git reset的區別
git revert 是撤銷某次操作,此次操作之前的commit都會被保留 git reset 是撤銷某次提交,但是此次之後的修改都會被退回到暫存區 具體乙個例子,假設有三個commit,git st commit3 add test3.c commit2 add test2.c commit1 a...
git revert和git reset的區別
git revert 是撤銷某次操作,此次操作之前的commit都會被保留 git reset 是撤銷某次提交,但是此次之後的修改都會被退回到暫存區 具體乙個例子,假設有三個commit,git st commit3 add test3.c commit2 add test2.c commit1 a...