把檔案從暫存區域或歷史記錄中複製到工作目錄,用來丟棄本地修改。
git reset -- files
用來撤銷最後一次git add files,你也可以用git reset 撤銷所有暫存區域檔案。
git reset [option] commitid
用來撤銷歷史記錄,option選項–soft,–hard,–mixed。
–soft只影響歷史記錄;
–mixed影響歷史記錄,暫存區;
–hard影響歷史記錄,暫存區,工作目錄;
假如git專案中有三個檔案a.txt,b.txt,c.txt,目前處於已提交狀態
當前a.txt的內容為
a.txt is a git file
編輯a檔案後
a.txt is a git file, i found something is wrong
發現寫錯了,想撤回到未修改之前,執行命令
git checkout -- a.txt
a.txt的內容重新變成了
a.txt is a git file
繼續修改a.txt,內容最終為
a.txt is a git file, i want commit it
執行命令
git add a.txt
突然任性不想提交這個內容了,怎麼辦
回退執行命令
git reset --hard
a.txt的內容重新變成了
a.txt is a git file
這裡有乙個問題,假如同時修改了a.txt,b.txt兩個檔案,執行上面的命令也會把b.txt回退,如果這種情況可以:
git reset
只會清空暫存區,並不影響工作目錄
git checkout -- a.txt
從歷史記錄把a.txt複製到工作目錄,就可以單獨回退a.txt了
當天小酌了一杯,不小心把a.txt
a.txt is a git file, i want commit it
提交了。
回退執行命令git add
a.txt
git commit -m "a.txt commit"
git reset --hard head~1
謝天謝地,a.txt又回到了
a.txt is a git file
這裡同樣有乙個問題,假如同時提交了a.txt,b.txt兩個檔案,執行上面的命令也會把b.txt回退,如果這種情況可以:
git reset head~1
歷史版本回退,歷史版本複製乙份到暫存區,並不影響工作目錄
git checkout -- a.txt
從暫存區把a.txt複製到工作目錄
最後把b.txt重新提交下
如果不想回退了,回到回退之前的版本git add b.txt
git commit -m "回退a.txt"
檢視回退之前的版本號commitid
git reflog
假如為如6558aa6
回到回退之前的版本
git reset --hard 6558aa6
回退中間某些提交
例如 e—f—g—h—i—j topica,回退g的這次提交記錄,可以執行
git rebase --onto f h j
git checkout `git rev-list -n 1 --before="2017-08-27 13:37" master`
git回退版本
有些時候我們提交的遠端 最新的 也許還不如上次寫的好,於是我們就想回退到以前的版本。那麼怎麼回退呢 對了,回退之前還是先備份下。1 2 3 git log 檢視提交的歷史 git log pretty oneline 如果嫌上面的輸出資訊過多可以使用這條 只輸出版本號 git reset hard ...
git 回退版本
git commit amend 提交後的一次補救,比如忘記在上一次提交時提交某些檔案,需要做一些修改後再提交。這個命令就像本次提交覆蓋了上一次提交,在倉庫歷史中不會顯示上一次提交 git reset head 將檔案從暫存區移到工作區,把暫存區的修改回退到工作區 git checkout 檔名 回...
Git版本回退
1 檢視檔案修改歷史 git log 返回的是commit後的操作記錄 git log pretty oneline 也可以使用這個命令格式化日誌輸出 2 版本回退 git reset hard head 回退到上乙個版本 git reset hard head 100 會退到第100個版本,例如現...