簡體   English   中英

修改git中的第一個提交消息?

[英]Amending first commit message in git?

假設我有一個提交消息日志,是否可以修改第一次提交消息?或者這就是為什么我們不能將第一次提交作為初始提交的原因。

您實際上不能更改 任何提交。 “修改”的作用(或交互式rebase中的“ reword”)是制作提交的新副本 在此副本中,您完全更改了需要更改的內容,其余所有相同。

這里的問題是,所有后續提交最終都指向原始的第一次提交,而不是副本。 例如,假設恰好有三個提交。 我們稱它們為ABC 分支標簽master指向提交C 但是,提交C指向B ,而B指向A 由於A是初始提交,因此鏈到此結束(這就是您知道一次提交是初始提交的方式:它指向任何人都沒有。)

A <- B <- C   <-- master

現在,您建議將提交A復制到一些新的提交中,我們稱它為A'

A <- B <- C   <-- master

A'

為了使此功能有用,您現在還必須復制BC ,每個都做一個更改: B的副本(我們稱為B' )必須指向A' ,而C的副本必須指向到B'

A <- B <- C   <-- master

A' <- B' <- C'

一旦以此方式復制了每個提交,就可以將標簽master更改為指向最后一個副本(此處為C' ):

A <- B <- C

A' <- B' <- C'   <-- master

現在,可以安全地放棄原始的ABC提交鏈,因為您已經復制了您關心的所有內容,同時進行了必要的更改以使新的A'-B'-C'鏈看起來像您想要的那樣。

一直回到root提交的方法是使用git rebase -i --root 但是,與所有重新定基或“編輯歷史記錄”的任何其他方式一樣,這將使任何人早日獲得您的作品的出版副本並認為您仍然提交ABC而不是新的A'-B'-C'序列。 因此,如果您的存儲庫是由其他人克隆或推送給其他人的,則不要這樣做,或者至少在沒有與他們討論之前,不要這樣做。

暫無
暫無

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

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