[英]How to redo squash some selected commits on branch
如何重做或撤消壓縮分支上的某些選定提交,簡而言之,我的問題是
提交是 ABCDEFG
提交是 AB-CD-EF-G
commits is AB-CD-E-FG
有什么我錯了讓我糾正。 我只是想簡化我的查詢
您從1.
到2.
對 go 所做的操作已經改寫了您的歷史記錄,因此2.
中的G
與 1. 中的G
不具有相同的 hash 1.
重新使用你的符號:
- 第一次
提交是 ABCDEFG
- 在壓縮了一些提交之后,它們是
提交是 AB-C'-D'-EF-G'
要撤消重寫,您需要獲取原始G
提交(不是G'
)的 hash 。
您本地的 git 存儲庫仍應在其 reflog 中包含它:
# in the following list of commits, spot the one that would match your initial commit :
git reflog
# you will have a shorter list if you look at the reflog of your working branch :
git reflog my/branch
一旦你有了 hash:
git reset --hard <that hash>
, 關於git reset --hard
的強制警告:
git reset --hard
是為數不多的破壞性 git 命令之一:如果您的磁盤(跟蹤的文件)上有未存儲在 git 中的更改,則此命令將強制刪除這些更改,並重新設置這些文件的內容目標提交的內容。
這就是為什么建議首先查看您的本地更改,並確定您丟棄的更改並不重要。 保存它們的方法很簡單:只需創建一個提交或存儲——它們至少可以在之后從 reflog 中訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.