六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Linux系統怎么在Git里撤銷設置

[摘要]可以說,所有的操作系統都有撤銷的操作,Linux系統當然也不例外。而且在Linux的 Git中就可以撤銷掉絕大部分的錯誤操作,一起來看一下吧。當你進行一次新的提交的時候,Git 會保存你代碼庫在那個...

  可以說,所有的操作系統都有撤銷的操作,Linux系統當然也不例外。而且在Linux的 Git中就可以撤銷掉絕大部分的錯誤操作,一起來看一下吧。

  當你進行一次新的提交的時候,Git 會保存你代碼庫在那個特定時間點的快照;之后,你可以利用 Git 返回到你的項目的一個早期版本。

  在本篇博文里,我會講解某些你需要“撤銷”已做出的修改的常見場景,以及利用 Git 進行這些操作的最佳方法。

Linux系統如何在Git里撤銷操作

  撤銷一個“已公開”的改變

  場景: 你已經執行了 git push, 把你的修改發送到了 GitHub,現在你意識到這些 commit 的其中一個是有問題的,你需要撤銷那一個 commit.

  方法: git revert 《SHA》

  原理: git revert 會產生一個新的 commit,它和指定 SHA 對應的 commit 是相反的(或者說是反轉的)。如果原先的 commit 是“物質”,新的 commit 就是“反物質” — 任何從原先的 commit 里刪除的內容會在新的 commit 里被加回去,任何在原先的 commit 里加入的內容會在新的 commit 里被刪除。

  這是 Git 最安全、最基本的撤銷場景,因為它并不會改變歷史 — 所以你現在可以 git push 新的“反轉” commit 來抵消你錯誤提交的 commit。

  修正最后一個 commit 消息

  場景: 你在最后一條 commit 消息里有個筆誤,已經執行了 git commit -m “Fxies bug #42”,但在 git push 之前你意識到消息應該是 “Fixes bug #42″。

  方法: git commit --amend 或 git commit --amend -m “Fixes bug #42”

  原理: git commit --amend 會用一個新的 commit 更新并替換最近的 commit ,這個新的 commit 會把任何修改內容和上一個 commit 的內容結合起來。如果當前沒有提出任何修改,這個操作就只會把上次的 commit 消息重寫一遍。

  撤銷“本地的”修改

  場景: 一只貓從鍵盤上走過,無意中保存了修改,然后破壞了編輯器。不過,你還沒有 commit 這些修改。你想要恢復被修改文件里的所有內容 — 就像上次 commit 的時候一模一樣。

  方法: git checkout -- 《bad filename》

  原理: git checkout 會把工作目錄里的文件修改到 Git 之前記錄的某個狀態。你可以提供一個你想返回的分支名或特定 SHA ,或者在缺省情況下,Git 會認為你希望 checkout 的是 HEAD,當前 checkout 分支的最后一次 commit。

  記住:你用這種方法“撤銷”的任何修改真的會完全消失。因為它們從來沒有被提交過,所以之后 Git 也無法幫助我們恢復它們。你要確保自己了解你在這個操作里扔掉的東西是什么!(也許可以先利用 git diff 確認一下)

  重置“本地的”修改

  場景: 你在本地提交了一些東西(還沒有 push),但是所有這些東西都很糟糕,你希望撤銷前面的三次提交 — 就像它們從來沒有發生過一樣。

  方法: git reset 《last good SHA》 或 git reset --hard 《last good SHA》

  原理: git reset 會把你的代碼庫歷史返回到指定的 SHA 狀態。 這樣就像是這些提交從來沒有發生過。缺省情況下, git reset 會保留工作目錄。這樣,提交是沒有了,但是修改內容還在磁盤上。這是一種安全的選擇,但通常我們會希望一步就“撤銷”提交以及修改內容 — 這就是 --hard 選項的功能。

  在撤銷“本地修改”之后再恢復

  場景: 你提交了幾個 commit,然后用 git reset --hard 撤銷了這些修改(見上一段),接著你又意識到:你希望還原這些修改!

  方法: git reflog 和 git reset 或 git checkout

  原理: git reflog 對于恢復項目歷史是一個超棒的資源。你可以恢復幾乎 任何東西 — 任何你 commit 過的東西 — 只要通過 reflog。

  你可能已經熟悉了 git log 命令,它會顯示 commit 的列表。 git reflog 也是類似的,不過它顯示的是一個 HEAD 發生改變的時間列表。

Linux是一套免費使用和自由傳播的類Unix操作系統




主站蜘蛛池模板: 婷婷夜夜躁天天躁人人躁 | 亚洲国产天堂久久综合 | 天天做天天爱天天爽综合区 | 色视频免费网站 | 天天干狠狠插 | 日韩h| 日本五级床片在线观看 | 天天射天天摸 | 色狠狠色综合吹潮 | 日韩欧美不卡在线 | 日本高清视频色wwwwww色 | 欧美一级特黄aaaaaaa在线观看 | 日日干夜夜艹 | 青草香蕉视频 | 深爱激情婷婷 | 日本精品久久久久久久久免费 | 日本视频播放免费线上观看 | 色婷婷激婷婷深爱五月小说 | 夜夜综合网 | 亚洲精品色婷婷在线影院麻豆 | 欧美性受xxxx黑人xyx性爽 | 亚洲啪视频 | 亚洲产在线精品第一站不卡 | 伊人网2021 | 色综合久久综合网欧美综合网 | 中文字幕视频一区二区 | 我要看黄色一级片 | 色综合久久久久久久 | 欧美性色一级在线观看 | 亚洲欧美日韩在线精品一区二区 | 天天躁日日躁狠狠躁视频下载播二 | 在线播放色| 一级女性全黄久久生活片免费 | 色天使色婷婷丁香久久综合 | 无码日韩精品一区二区免费 | 天堂网中文 | 手机福利视频 | 三级小说在线 | 日本三级香港三级三级人!妇久 | 伊人热人久久中文字幕 | 日日夜干 |