Git與遠(yuǎn)程倉庫同步

2018-12-09 11:15 更新

在您可以通過將更改推到上游(upstream)來共享工作結(jié)果之前,您需要讓Git與遠(yuǎn)程倉庫進(jìn)行同步,以確保項(xiàng)目的本地副本是最新的。您可以通過以下方式之一進(jìn)行此操作:提取更改、提取更改、更新項(xiàng)目。

獲取更改

當(dāng)您從上游獲取更改時(shí),自上次與遠(yuǎn)程存儲(chǔ)庫同步以來所做的所有提交的新數(shù)據(jù)都會(huì)下載到本地副本中。這些新數(shù)據(jù)沒有集成到您的本地文件,并且更改不適用于您的代碼。

獲取的更改存儲(chǔ)為遠(yuǎn)程分支,這使您有機(jī)會(huì)在將它們與文件合并之前對其進(jìn)行檢查 。由于提取不會(huì)影響您的本地開發(fā)環(huán)境,因此這是獲取對遠(yuǎn)程倉庫的所有更改的更新的安全方法。

要獲取更改,請從主菜單中選擇VCS | Git | 獲取。

拖動(dòng)更改

從遠(yuǎn)程存儲(chǔ)庫中拖動(dòng)更改是獲取和隨后合并更改的方便快捷的快捷方式。當(dāng)您拖動(dòng)時(shí),您不僅要下載新數(shù)據(jù),還要將其集成到項(xiàng)目的本地工作副本中。

要進(jìn)行拖動(dòng)更改,請執(zhí)行以下操作:

  1. 從主菜單中選擇:VCS | Git | 拖動(dòng)。將打開 "拉動(dòng)更改" 對話框。
  2. 如果您的項(xiàng)目有多個(gè)Git存儲(chǔ)庫,請從Git Root下拉列表中選擇要更新的本地存儲(chǔ)庫的路徑 。
  3. 如果您為存儲(chǔ)庫配置了多個(gè)遠(yuǎn)程數(shù)據(jù)庫,請?jiān)赗emote下拉列表中選擇要從中提取數(shù)據(jù)的遠(yuǎn)程的URL 。
  4. 選擇您想要從中獲取更改的分支并合并到當(dāng)前檢出的分支中。
  5. 從“ 策略”下拉列表中,選擇將用于解決合并過程中發(fā)生的沖突的合并策略。
  6. 如有必要,請選擇以下內(nèi)容:
    • No commit:如果您不希望 IntelliJ IDEA 自動(dòng)提交合并結(jié)果,請選擇此選項(xiàng)。在這種情況下,您可以檢查它們并在必要時(shí)進(jìn)行調(diào)整。
    • No fast forward:選擇此選項(xiàng)可生成合并提交, 即使合并被解析為 fast-forward (即只更新了分支指針)。
    • Squash commit:選擇此選項(xiàng)可以在當(dāng)前分支的頂部創(chuàng)建一個(gè)提交,而不是合并一個(gè)或多個(gè)分支。它生成工作樹和索引狀態(tài),就好像一個(gè)真正的合并發(fā)生了,但它實(shí)際上并沒有提交或移動(dòng)HEAD。
    • Add log information:如果您希望IntelliJ IDEA使用除合并分支名稱之外的實(shí)際提交中的單行描述來填充日志消息,請選擇此選項(xiàng)。
  7. 點(diǎn)擊Pull以獲取并應(yīng)用所選遠(yuǎn)程存儲(chǔ)庫中的更改。

更新項(xiàng)目

如果您有多個(gè)項(xiàng)目根目錄,或者想在每次與遠(yuǎn)程倉庫同步時(shí)從所有分支獲取更改,則可能會(huì)發(fā)現(xiàn)更新項(xiàng)目是一個(gè)更方便的選項(xiàng)。

當(dāng)您執(zhí)行更新操作時(shí),IntelliJ IDEA會(huì)將更改拖動(dòng)到所有項(xiàng)目的根和分支,并將它們合并到本地工作副本中(相當(dāng)于“pull”)。

要更新您的項(xiàng)目,請執(zhí)行以下操作:

如果您選擇不在將來顯示“ 更新項(xiàng)目”對話框,然后在某個(gè)時(shí)刻想要修改默認(rèn)更新策略,請?jiān)冢涸O(shè)置| 版本控制| 確認(rèn)中選擇“更新”,當(dāng)這些命令被調(diào)用時(shí),它在 "顯示選項(xiàng)" 對話框中,并在下次執(zhí)行更新時(shí)修改更新策略。

  1. 從主菜單中選擇:VCS | 更新項(xiàng)目或按Ctrl+T。將打開 "更新項(xiàng)目" 對話框。
  2. 選擇更新類型(該策略將應(yīng)用于Git版本控制下的所有根目錄):
    • 合并(Merge):選擇此選項(xiàng)可在更新期間執(zhí)行合并。這相當(dāng)于運(yùn)行 git 獲取,然后是 git 合并,或者是 git no-rebase。
    • Rebase:選擇此選項(xiàng)可在更新期間執(zhí)行rebase。這相當(dāng)于運(yùn)行g(shù)it獲取,然后是git rebase,或者git pull --rebase(所有本地提交將放在更新的上游頭頂部)。
    • 分支默認(rèn)值:如果您想為不同分支應(yīng)用不同的更新策略,請選擇此選項(xiàng)。您可以在.git/config 配置文件的branch.<name>部分指定每個(gè)分支的默認(rèn)更新類型。
  3. 在更新之前清除工作副本時(shí)指定一個(gè)將用于保存更改的方法,以便在更新完成后可以恢復(fù)未提交的更改:
    • 使用Stash:選擇此選項(xiàng)可以將本地更改保存在git stash中。如果您需要在IntelliJ IDEA之外應(yīng)用具有stash更改的修補(bǔ)程序,這是非常有用的,因?yàn)樗鼈兪怯蒅it本身生成的。
    • 使用Shelve:選擇此選項(xiàng)可將本地更改放置到shelve上。通過IntelliJ IDEA完成shelve,通常在IntelliJ IDEA內(nèi)部應(yīng)用shelve更改生成的補(bǔ)丁。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號