IDEA:將更改提交并推送到遠(yuǎn)程Git倉庫

2018-12-11 11:51 更新

在將新文件添加到Git倉庫或或修改已有的Git版本控制下的文件,并且您對(duì)其當(dāng)前狀態(tài)感到滿意之后,您可以共享您的工作結(jié)果。這包括在本地提交它們,以便將項(xiàng)目庫的快照記錄到項(xiàng)目歷史記錄中,然后將它們推送到遠(yuǎn)程存儲(chǔ)庫,以便其他人可以使用它們。

在本地提交更改

如果您意識(shí)到需要編輯提交消息,則可以在推送此提交之前執(zhí)行此操作。請(qǐng)參閱編輯提交消息。

  1. 以下列方式之一調(diào)用“提交”對(duì)話框:按Ctrl+K。在“版本控制”工具窗口的“本地更改”選項(xiàng)卡中,選擇要提交的列表或文件,然后單擊工具欄上的“提交更改”按鈕 ,或者在選擇的上下文菜單上選擇“提交更改 ”。在主菜單上,選擇:VCS | 提交,或VCS | Git | 提交文件。在“提交更改”對(duì)話框中列出了自上次已修改的所有文件提交,和所有新添加的版本文件。
  2. 輸入一個(gè)提交消息,然后選擇IntelliJ IDEA在將所選文件提交到本地存儲(chǔ)庫之前執(zhí)行的提交前操作。
  3. 如有必要 ,請(qǐng)?jiān)贕it部分中選擇以下選項(xiàng):Author:如果您正在提交他人所做的更改,您可以指定這些更改的作者。Amend commit:如果要將本地更改添加到最新的提交中,請(qǐng)選擇此選項(xiàng)(有關(guān)詳細(xì)信息,請(qǐng)參閱將階段更改與先前的提交(修改提交)相結(jié)合)。Sign-off commit:如果您想要注銷提交,請(qǐng)選擇此選項(xiàng),即證明您將要簽入的更改是由您進(jìn)行的,或者您對(duì)相關(guān)代碼負(fù)責(zé)。啟用此選項(xiàng)后,會(huì)在提交消息的末尾自動(dòng)添加以下行:
    Signed off by: <username>    
  4. 單擊“提交”按鈕或?qū)⑹髽?biāo)懸停在此按鈕上以顯示以下可用提交選項(xiàng)之一:提交和推送:提交后立即將更改推送到遠(yuǎn)程倉庫。創(chuàng)建補(bǔ)丁: 根據(jù)您即將提交的更改生成補(bǔ)丁。在打開的“ 創(chuàng)建補(bǔ)丁”對(duì)話框中,輸入補(bǔ)丁文件的名稱,并指定是否需要反向補(bǔ)丁。遠(yuǎn)程運(yùn)行:運(yùn)行您的個(gè)人構(gòu)建。此選項(xiàng)僅在您登錄到TeamCity時(shí)可用。 有關(guān)詳細(xì)信息,請(qǐng)參閱TeamCity插件文檔。

您可以自定義應(yīng)用于提交消息的規(guī)則,如主題與正文之間的空行和最大消息長(zhǎng)度。為此,請(qǐng)?jiān)?"設(shè)置" 對(duì)話框 (Ctrl + Alt + S) 中選擇:版本控制| 提交對(duì)話框。

還有一個(gè)快速修復(fù)和重新格式化操作,允許您包裝長(zhǎng)行或?qū)μ峤幌⑦M(jìn)行格式設(shè)置。

即使只有Unversioned文件出現(xiàn)在項(xiàng)目中, 您可以調(diào)用Commit Changes對(duì)話框,例如從IntelliJ IDEA外部添加。

將更改推送到遠(yuǎn)程Git倉庫

在推送您的更改之前,請(qǐng)與遠(yuǎn)程同步,并確保您的本地存儲(chǔ)庫副本是最新的以避免沖突。

IntelliJ IDEA允許您將更改從當(dāng)前分支上傳到其跟蹤的分支或任何其他遠(yuǎn)程分支。

如果提交的作者與當(dāng)前用戶不同,則此提交用星號(hào)標(biāo)記。

  1. 按Ctrl+Shift+K或從主菜單選擇:VCS | Git | Push?!?nbsp;推送提交”對(duì)話框?qū)⒋蜷_,顯示所有Git倉庫(對(duì)于多存儲(chǔ)庫項(xiàng)目),并列出自上次推送以來每個(gè)存儲(chǔ)庫中當(dāng)前分支中所做的所有提交。如果您有一個(gè)項(xiàng)目使用多個(gè)不同步控制的存儲(chǔ)庫,則默認(rèn)情況下僅選擇當(dāng)前存儲(chǔ)庫(有關(guān)如何啟用同步存儲(chǔ)庫控件的詳細(xì)信息,請(qǐng)參閱“版本控制設(shè)置:Git”)。
  2. 如果存儲(chǔ)庫中沒有遙控器,則會(huì)顯示 "定義遠(yuǎn)程鏈接"。點(diǎn)擊此鏈接并在打開的對(duì)話框中指定遠(yuǎn)程名稱和URL。它將被保存,您可以稍后通過:VCS | Git | Remotes 編輯它(有關(guān)詳細(xì)信息,請(qǐng)參閱添加遠(yuǎn)程倉庫)。
  3. 如果要修改要推送的目標(biāo)分支,可以單擊分支名稱。標(biāo)簽將變成一個(gè)文本字段,您可以鍵入現(xiàn)有的分支名稱,或創(chuàng)建一個(gè)新的分支。您也可以單擊右下角的"編輯所有目標(biāo)"鏈接來同時(shí)編輯所有分支名稱。請(qǐng)注意,您不能更改本地分支:將會(huì)推送每個(gè)選定存儲(chǔ)庫的當(dāng)前分支。
  4. 如果您想在推送更改之前預(yù)覽更改,請(qǐng)選擇所需的提交。右側(cè)窗格顯示所選提交中包含的更改。您可以使用工具欄按鈕來檢查提交詳細(xì)信息。
  5. 點(diǎn)擊推送準(zhǔn)備時(shí)按鈕,然后從下拉菜單中選擇要執(zhí)行的操作: Push或Force push。只有啟用了 "允許強(qiáng)制推送" 選項(xiàng)處于啟用狀態(tài)時(shí)才可用(請(qǐng)參閱版本控制設(shè)置:Git),否則您只能執(zhí)行該push操作。

您也可以通過按選定元素的 enter 或 F2 切換到編輯模式。

您可以按下Ctrl+Q為所選的提交來顯示額外的信息,例如提交作者、時(shí)間、哈希和提交信息。

如果選擇整個(gè)存儲(chǔ)庫,則所有提交的所有文件都將列在右側(cè)窗格中。

如果同一文件在多次提交中被修改,則只會(huì)在選擇這些提交或整個(gè)存儲(chǔ)庫時(shí)列出一次,如果您為該文件調(diào)用文件差異查看器,則所有更改都將被壓縮到一起。

如果由于工作副本過期而拒絕推送,則IntelliJ IDEA將顯示“ 推送被拒絕”對(duì)話框,前提是“設(shè)置” 對(duì)話框的“Git設(shè)置”頁面中的“如果推送當(dāng)前分支時(shí)自動(dòng)更新被拒絕”選項(xiàng)未選中。請(qǐng)執(zhí)行下列操作:

  1. 如果您的項(xiàng)目使用多個(gè)Git倉庫,請(qǐng)指定您想要更新的其中之一。如果要更新所有存儲(chǔ)庫,無論是否push拒絕,請(qǐng)選擇 "更新不拒絕的資料庫" 以及 "選項(xiàng)"。如果清除此選項(xiàng),則只會(huì)更新受影響的存儲(chǔ)庫。
  2. 如果您希望IntelliJ IDEA以靜默方式應(yīng)用更新過程,則在下一次使用在此對(duì)話框中選擇的 update 方法拒絕推送時(shí),選擇 "記住更新方法" 選項(xiàng),并在將來的選擇中進(jìn)行靜默更新。在離開這個(gè)對(duì)話框之后,將選擇 "設(shè)置" 對(duì)話框的 "Git 設(shè)置" 頁中的 "在當(dāng)前分支被拒絕時(shí)自動(dòng)更新" 復(fù)選框,并且而應(yīng)用的 update 方法將成為默認(rèn)值。要更改更新策略,請(qǐng)取消選擇此選項(xiàng)以在下次拒絕當(dāng)前分支的推送時(shí)調(diào)用“推送被拒絕”對(duì)話框,應(yīng)用不同的更新過程并再次選擇“記住更新方法選擇”選項(xiàng)。
  3. 分別點(diǎn)擊Rebase或Merge按鈕選擇更新方法(重新綁定或合并)。

什么時(shí)候需要使用 force push?

當(dāng)您運(yùn)行 push 時(shí),如果遠(yuǎn)程倉庫中有您所缺少的更改,并且要使用本地存儲(chǔ)庫副本進(jìn)行覆蓋,Git將拒絕完成操作。通常情況下,您需要執(zhí)行pull操作才能與遠(yuǎn)程進(jìn)行同步,然后使用更改進(jìn)行更新。

該 --force push 命令將禁用此檢查,并允許您覆蓋遠(yuǎn)程倉庫,從而刪除其歷史記錄并導(dǎo)致數(shù)據(jù)丟失。

注意:除非絕對(duì)必要(例如,如果您不小心推送了一些敏感數(shù)據(jù)),否則應(yīng)該避免重新啟動(dòng)分支并修改其歷史記錄。

當(dāng)您需要執(zhí)行--force push的一種可能的情況是,當(dāng)您推送一個(gè)推送的分支,然后將其推送到遠(yuǎn)程服務(wù)器。在這種情況下,當(dāng)您嘗試推送時(shí),Git將拒絕您的更改,因?yàn)檫h(yuǎn)程參考不是本地參考的上級(jí)。如果您在這種情況下執(zhí)行pull操作,您將最終得到兩份你需要合并的分支。

如果您決定強(qiáng)制推出重新設(shè)計(jì)的分支,并且您正在團(tuán)隊(duì)中工作,請(qǐng)確保:

  • 沒有人拉你的分支,并做了一些本地更改
  • 所有待處理的更改均已提交并推送
  • 您有該分支的最新更改
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)