日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux系統(tǒng)下使用Git撤銷操作的方法教程

如果你在使用電腦時無意將私人信息傳播出去了,該怎么撤回呢?很多人都會有這種困擾,因?yàn)樽约旱囊粫r疏忽,很有可能造成不必要的影響,現(xiàn)在Linux系統(tǒng)中有個Git撤銷設(shè)置,可以在Git里面撤銷掉一些錯誤的操作,因?yàn)槟忝看尾僮麟娔X的時候,git都會保存之前的快照,想要撤銷之前的步驟的話只要刪除就可以了 。下面小編就和大家分享這個操作方法,Linux系統(tǒng)如何在Git里撤銷操作 。
當(dāng)你進(jìn)行一次新的提交的時候,Git 會保存你代碼庫在那個特定時間點(diǎn)的快照;之后,你可以利用 Git 返回到你的項(xiàng)目的一個早期版本 。
在本篇博文里,我會講解某些你需要“撤銷”已做出的修改的常見場景,以及利用 Git 進(jìn)行這些操作的最佳方法 。

Linux系統(tǒng)下使用Git撤銷操作的方法教程


撤銷一個“已公開”的改變
場景: 你已經(jīng)執(zhí)行了 git push,把你的修改發(fā)送到了 GitHub,現(xiàn)在你意識到這些 commit 的其中一個是有問題的,你需要撤銷那一個 commit.
方法: git revert 《SHA》
原理: git revert 會產(chǎn)生一個新的 commit,它和指定 SHA 對應(yīng)的 commit 是相反的(或者說是反轉(zhuǎn)的) 。如果原先的 commit 是“物質(zhì)”,新的 commit 就是“反物質(zhì)” — 任何從原先的 commit 里刪除的內(nèi)容會在新的 commit 里被加回去,任何在原先的 commit 里加入的內(nèi)容會在新的 commit 里被刪除 。
這是 Git 最安全、最基本的撤銷場景,因?yàn)樗⒉粫淖儦v史 — 所以你現(xiàn)在可以 git push 新的“反轉(zhuǎn)” commit 來抵消你錯誤提交的 commit 。
修正最后一個 commit 消息
場景: 你在最后一條 commit 消息里有個筆誤,已經(jīng)執(zhí)行了 git commit -m “Fxies bug #42”,但在 git push 之前你意識到消息應(yīng)該是 “Fixes bug #42″ 。
方法: git commit --amend 或 git commit --amend -m “Fixes bug #42”
原理: git commit --amend 會用一個新的 commit 更新并替換最近的 commit,這個新的 commit 會把任何修改內(nèi)容和上一個 commit 的內(nèi)容結(jié)合起來 。如果當(dāng)前沒有提出任何修改,這個操作就只會把上次的 commit 消息重寫一遍 。
撤銷“本地的”修改
場景: 一只貓從鍵盤上走過,無意中保存了修改,然后破壞了編輯器 。不過,你還沒有 commit 這些修改 。你想要恢復(fù)被修改文件里的所有內(nèi)容 — 就像上次 commit 的時候一模一樣 。
方法: git checkout -- 《bad filename》
原理: git checkout 會把工作目錄里的文件修改到 Git 之前記錄的某個狀態(tài) 。你可以提供一個你想返回的分支名或特定 SHA,或者在缺省情況下,Git 會認(rèn)為你希望 checkout 的是 HEAD,當(dāng)前 checkout 分支的最后一次 commit 。
記?。耗阌眠@種方法“撤銷”的任何修改真的會完全消失 。因?yàn)樗鼈儚膩頉]有被提交過,所以之后 Git 也無法幫助我們恢復(fù)它們 。你要確保自己了解你在這個操作里扔掉的東西是什么?。ㄒ苍S可以先利用 git diff 確認(rèn)一下)
重置“本地的”修改
場景: 你在本地提交了一些東西(還沒有 push),但是所有這些東西都很糟糕,你希望撤銷前面的三次提交 — 就像它們從來沒有發(fā)生過一樣 。
方法: git reset 《last good SHA》 或 git reset --hard 《last good SHA》
原理: git reset 會把你的代碼庫歷史返回到指定的 SHA 狀態(tài) 。這樣就像是這些提交從來沒有發(fā)生過 。缺省情況下,git reset 會保留工作目錄 。這樣,提交是沒有了,但是修改內(nèi)容還在磁盤上 。這是一種安全的選擇,但通常我們會希望一步就“撤銷”提交以及修改內(nèi)容 — 這就是 --hard 選項(xiàng)的功能 。
在撤銷“本地修改”之后再恢復(fù)
場景: 你提交了幾個 commit,然后用 git reset --hard 撤銷了這些修改(見上一段),接著你又意識到:你希望還原這些修改!

推薦閱讀