Git 允許您編輯您的項目歷史,如果在某一時刻您需要重寫您的提交,就像您以不同的方式創(chuàng)建它們一樣。
將分階段的更改與以前的提交合并(修改提交)
有時您可能會發(fā)現(xiàn)自己處于這樣的情況:過早地提交了一些文件,或者忘記了在最后一次提交中要修復(fù)的錯誤,而沒有將其反映在項目歷史記錄中。
IntelliJ IDEA允許您通過使用"修改提交(Amend commit)"選項將以前的提交與當前的更改組合在一起,然后結(jié)束單個提交而不是兩個不同的提交。
要修改以前的提交內(nèi)容,請執(zhí)行以下操作:
- 調(diào)用"提交更改(Commit changes)"對話框,并選擇要用于修復(fù)前一個提交的更改。
- 按下Ctrl+K,單擊工具欄上的
,或從上下文菜單中選擇“提交(Commit)”。
- 在打開的“提交更改”對話框中,在提交更改之前,選擇右側(cè)的“修訂提交(Amend commit)”選項。
編輯提交消息
Note:編輯提交消息此操作只能應(yīng)用到尚未被推送的提交。
如果您唯一需要更改的是提交消息,則可以在不進行任何其他更改的情況下對其進行編輯:
- 在“日志”視圖中找到要編輯其消息的提交,右鍵單擊該提交,然后從上下文菜單中選擇“重新輸入”,或按F2。
- 在打開的對話框中,輸入新的提交信息,然后單擊確定。
通過執(zhí)行交互式的rebase編輯項目歷史記錄
注意:請記住,重寫提交歷史記錄可能會導致數(shù)據(jù)丟失。
Git允許您編輯項目歷史記錄,以便通過執(zhí)行交互式rebase分配來使其成為線性和有意義的。這允許您通過修改個別提交、改變它們的順序、將提交內(nèi)容壓縮為一個、跳過包含無關(guān)改變的提交等來清理雜亂的提交歷史,然后再將功能分支的更改集成到另一個分支。
編輯當前分支的歷史記錄
IntelliJ IDEA允許您在將更改應(yīng)用到其他分支之前編輯當前分支中的一系列最近的提交 。
- 在“版本控制工具”窗口的“日志”選項卡中,選擇要編輯的一系列提交中最舊的提交,右鍵單擊該提交,然后選擇“從這里交互式重定向(Interactively Rebase from Here)”。將顯示 “Interactive Rebase”對話框,其中包含在選定提交后所做的當前分支中的所有提交的列表。
- 使用“操作”下拉列表將以下操作應(yīng)用于提交:
- Pick:按原樣應(yīng)用選定的提交。
- Edit:選擇此選項以在應(yīng)用此提交之前編輯受此提交或提交消息影響的文件。
- Skip:忽略選定的提交。
- Squash:選擇此選項將選定的提交與前一個提交相結(jié)合。
- Reword:選擇此選項以在應(yīng)用此提交之前編輯提交消息。
- Fixup:選擇此選項可將選定的提交與前一個提交相結(jié)合,并從之前提交的消息使用“fixup”前綴。
- 使用“上移”和“下移”按鈕來修改應(yīng)用提交的順序。
編輯分支歷史記錄并將其集成到另一個分支
IntelliJ IDEA允許您在應(yīng)用更改之前rebase其他分支頂部的分支并編輯源分支歷史記錄。
- 從主菜單中選擇:VCS | Git | Rebase。
- 在“Branch”字段中選擇要分叉的分支,并在“Onto”字段中選擇目標分支。
- 在“From”字段中,選擇要將選定分支應(yīng)用于新基準的提交。
- 確保已選中“交互(Interactive)”選項,然后單擊“重新分配(Rebase)”。將顯示“Interactive Rebase”對話框,其中包含在選定提交后所做的當前分支中的所有提交的列表。
- 使用“操作(Action)”下拉列表將以下操作應(yīng)用于提交:
- Pick:按原樣應(yīng)用選定的提交。
- Edit:選擇此選項以在應(yīng)用此提交之前編輯受此提交或提交消息影響的文件。
- Skip:忽略選定的提交。
- Squash:選擇此選項將選定的提交與前一個提交相結(jié)合。
- Reword:選擇此選項以在應(yīng)用此提交之前編輯提交消息。
- Fixup:選擇此選項可將選定的提交與前一個提交相結(jié)合,并從之前提交的消息使用“fixup”前綴。
- 使用“上移”和“下移”按鈕來修改應(yīng)用提交的順序。
更多建議: