前面兩天整理的筆記主要都在建立新的東西
今天就把修改用的指令做整理
1. revert - 重做上個commit
感覺上相對安全的方法,不會更動當前的 commit,而是加一個新的 commit,內容是上一個版本,如果發現只是烏龍一場,其實沒有做錯,還是可以回去之前的版本。
指令 | 功用說明 |
---|---|
git revert HEAD | 提交上個版本,因為時間軸是接續往後的,如果連續下這個指令,只會在現在這個版本和上個版本來回變動(歷史紀錄會變很長) |
git revert commit代號1^...commit代號2^ | 代號1是比較舊的版本,代號2是比較新的版本,把代號1到代號2之間的commit都revert |
2. reset - 刪除上個commit
回到過去的commit,這個commit以後的commit就無法從 git log查詢到(要知道被刪掉版本的 hash才能回去)
指令 | 功用說明 |
---|---|
git reset HEAD^ | 退到上一次的commit |
git reset commit代號 | 退到指定的commit |
3. rebase - 刪除上個commit
昨天筆記有提到的 rebase,不是用來還原,這邊的 re + base是修改基準版本,因為會改變history,使用時機主要是只有自己在維護的分支,避免動到別人的history。
指令 | 功用說明 |
---|---|
git rebase branch名稱 | 把指定分支當成當前分支的基準(所有commit合併成同一條線) |
4. 其他修正
指令 | 功用說明 |
---|---|
git checkout 檔案名稱 | 取消對該檔案的變更 |
git checkout . | 取消本地所有檔案的變更 |
git commit --amend | 改寫commit內容 |