簡體   English   中英

我是否需要在每個分支上重新設置 git 以修復病態提交消息?

[英]Do I need to git rebase on every branch to fix a pathological commit message?

我正在向 git 提交一個大文件,在編輯提交消息文件時,我的編輯器似乎搞砸了。 結果是~100k 行的整個差異變成了我的“提交消息”。 現在,每次我在存儲庫中加載頁面時,都會減慢整個 git 服務器的速度。

我知道我可以簡單地在我的主分支上運行交互式 rebase 來編輯提交消息。

不幸的是,當我意識到這一點時,有問題的提交已經被合並到主分支中,並從那里合並到其他幾個分支中。 那么這是否意味着我必須跟蹤每個分支中的提交並在其上重復變基?

我記得在 git 中,提交是不可變的對象,而分支只是提交上的標簽。 所以並不是說“多個分支有一個commit”,而是一個commit 可以是多個分支的成員。 這是否意味着如果我只在 master 分支上編輯提交,其他分支也將被修復? 還是不是因為交互式變基只是用我編輯的消息創建了一個新提交,而不是從字面上編輯原始提交 object?

如果要編輯歷史記錄,所有解決方案的共同點是:

  • 你將不得不強制推動結果,
  • 您必須告訴每個人采取必要的步驟將他們的工作轉移到新的歷史記錄中,這樣他們下次推送到中央回購時就不會上傳舊的歷史記錄。

要為所有分支重寫該特定提交,請查看git filter-repogit filter-branch而不是git rebase

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM