亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

推送后更改git commit消息(假設沒有人從遠程拉出)

推送后更改git commit消息(假設沒有人從遠程拉出)

Git
搖曳的薔薇 2019-10-23 15:16:12
我做了一個git commit和隨后的推送。我想更改提交消息。如果我理解正確,那么這是不可取的,因為有人在進行此類更改之前可能已經從遠程存儲庫中拉出了。如果我知道沒人拉怎么辦?有沒有辦法做到這一點?
查看完整描述

3 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

改變歷史

如果這是最新的提交,則可以執行以下操作:


git commit --amend

這將使編輯器顯示最后的提交消息,并允許您編輯消息。(-m如果您要清除舊消息并使用新消息,則可以使用。)


推動

然后,當您按下按鈕時,請執行以下操作:


git push --force-with-lease <repository> <branch>

或者,您可以使用“ +”:


git push <repository> +<branch>

或者您可以使用--force:


git push --force <repository> <branch>

使用這些命令時要小心。


如果其他人將更改推送到同一分支,則可能要避免破壞這些更改。該--force-with-lease選項是最安全的,因為如果有任何上游更改,它將中止(


如果您未明確指定分支,則Git將使用默認的推送設置。如果您的默認推送設置為“匹配”,則您可能會同時破壞多個分支上的更改。


之后拉/取

現在,任何已經拉出的人都會收到一條錯誤消息,并且他們需要通過執行以下操作來更新(假設他們自己沒有進行任何更改):


git fetch origin

git reset --hard origin/master # Loses local commits

使用時要小心reset --hard。如果分支有更改,這些更改將被銷毀。


有關修改歷史記錄的注釋

銷毀的數據實際上只是舊的提交消息,但--force不知道該消息,也很樂意刪除其他數據。因此可以想象--force為“我想銷毀數據,并且我確定要銷毀哪些數據”。但是,當提交已破壞的數據時,通??梢詮膔eflog中恢復舊的提交-數據實際上是孤立的而不是被破壞的(盡管孤立的提交會定期刪除)。


如果您不認為自己要破壞數據,請遠離--force…… 可能會發生壞事。


這就是為什么--force-with-lease更安全的原因。


查看完整回答
反對 回復 2019-10-23
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

說啊 :


git commit --amend -m "New commit message"

接著


git push --force


查看完整回答
反對 回復 2019-10-23
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

要編輯最近提交以外的提交:

步驟1:git rebase -i HEAD~n對n受影響的最后一次提交進行交互式變基。(即,如果您想更改3次提交的提交消息,請執行git rebase -i HEAD~3)


git將彈出一個編輯器來處理這些提交,請注意以下命令:#  r, reword = use commit, but edit the commit message,這正是我們所需要的。


第二步:更改pick到r了要更新味精這些提交。請勿在此處更改提交消息,它將被忽略。您將在下一步中進行操作。保存并關閉編輯器。


第三步:Git將為您r之前輸入的每個修訂版本彈出另一個編輯器。根據需要更新提交消息,然后保存并關閉編輯器。


步驟4:在更新所有提交消息之后。您可能要git push -f更新遙控器。


查看完整回答
反對 回復 2019-10-23
  • 3 回答
  • 0 關注
  • 535 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號