教程3 改寫提交。 3. reset
為了節省時間,這個教程使用現有的記錄作為本機資料庫。
從這裡下載
我們將用reset來刪除master分支最前面的兩個提交。
首先進入stepup-tutorial/tutorial3目錄。本地端的記錄的狀態如下圖顯示。
用log命令確認記錄。
$ git logcommit 0d4a808c26908cd5fe4b6294a00150342d1a58beAuthor: yourname <yourname@yourmail.com>Date: Mon Jul 16 23:19:26 2012 +0900 添加pull的說明commit 9a54fd4dd22dbe22dd966581bc78e83f16cee1d7Author: yourname <yourname@yourmail.com>Date: Mon Jul 16 23:19:01 2012 +0900 添加commit的說明commit 326fc9f70d022afdd31b0072dbbae003783d77edAuthor: yourname <yourname@yourmail.com>Date: Mon Jul 16 23:17:56 2012 +0900 添加add的說明commit 48eec1ddf73a7fb508ef664efd6b3d873631742fAuthor: yourname <yourname@yourmail.com>Date: Mon Jul 16 23:16:14 2012 +0900 first commit
開啟sample.txt檔案,確認內容。
連猴子都懂的Git命令add 把變更錄入到索引中commit 記錄索引的狀態pull 取得遠端資料庫的內容
用reset刪除提交。
$ git reset --hard HEAD~~HEAD is now at 326fc9f 添加add的說明
開啟sample.txt,看看「添加commit的講解」和「添加pull的講解」是否消失了。或者用log命令確認記錄。
$ git logcommit 326fc9f70d022afdd31b0072dbbae003783d77edAuthor: yourname <yourname@yourmail.com>Date: Mon Jul 16 23:17:56 2012 +0900 添加add的說明commit 48eec1ddf73a7fb508ef664efd6b3d873631742fAuthor: yourname <yourname@yourmail.com>Date: Mon Jul 16 23:16:14 2012 +0900 first commit
在reset之前的提交可以參照ORIG_HEAD。Reset錯誤的時候,在ORIG_HEAD上reset 就可以還原到reset前的狀態。
$ git reset --hard ORIG_HEADHEAD is now at 0d4a808 添加pull的說明
from: http://backlogtool.com/git-guide/cn/stepup/stepup7_3.html