JavaRush /Java Blog /Random-TW /讓我們將 Git 與 Intellij IDEA 連接起來
Roman Beekeeper
等級 35

讓我們將 Git 與 Intellij IDEA 連接起來

在 Random-TW 群組發布
按照傳統,我歡迎你們,未來的高級軟體工程師。 讓我們將 Git 與 Intellij IDEA 連接 - 1今天我們將討論我關於Git的文章的邏輯延續。我還建議閱讀我之前發布的有關分支策略的資料。在有關 Git 的文章中,我描述瞭如何在命令列上使用它,今天我將向您展示如何在 Intellij IDEA 中完成這一切。在我作為開發人員的旅程開始時,我使用了命令列,並認為我不需要使用 UI 來處理這件事。畢竟,一切都清楚了……但那正是直到我開始在 Intellij IDEA 中使用 Git 的那一刻……我馬上想說,我將描述我的個人經歷。使用 Intellij IDEA 解決相同問題有多種選擇,如果您知道如何更好地完成我在文章中描述的內容,請寫在評論中,我們將進行討論。

必要的介紹說明:

  1. 閱讀、重複並理解有關 git 的文章。這將有助於確保一切都已設定完畢並準備就緒。
  2. 安裝 Intellij IDEA。
  3. 留出一個小時的個人時間來完全吸收。
為了工作,我們以我在有關 Git 的文章中使用的 演示項目為例。更新:在發佈時,新的 Github UI 已經可用,並且某些圖示不會出現在文章中顯示的位置。不要驚慌:您只需要要么不切換到新的用戶介面,要么尋找它們。

將項目克隆到本地

這裡有兩個選擇。
  1. 如果你已經有一個 Github 帳戶並且想稍後推送一些東西,最好將專案分叉給你自己並克隆你的副本。如何進行分叉 - 我在本文的章節中描述了分叉工作流程的範例
  2. 從我的存儲庫克隆並在本地執行所有操作,而無法將整個操作推送到伺服器上。畢竟,這將是我的存儲庫))
要從 Github 克隆項目,您需要複製該項目的連結並將其傳遞到 IntelliJ IDEA:
  1. 複製項目地址:

    讓我們將 Git 與 Intellij IDEA 連接 - 2
  2. 開啟 Intellij IDEA 並選擇從版本控制取得:

    讓我們將 Git 與 Intellij IDEA 連接 - 3
  3. 將地址複製並貼上到項目中:

    讓我們將 Git 與 Intellij IDEA 連接 - 4
  4. 系統將提示您建立 Intellij IDEA 專案。我們接受報價:

    讓我們將 Git 與 Intellij IDEA 連接 - 5
  5. 由於沒有建置系統,並且這不是本文的範圍,因此選擇從現有來源建立專案

    讓我們將 Git 與 Intellij IDEA 連接 - 6
  6. 接下來會有這樣一幅油畫: 讓我們將 Git 與 Intellij IDEA 連接 - 7我們已經整理好了克隆,現在我們可以四處看看了。

首先先來看看 Intellij IDEA 作為 Git UI

再仔細看看克隆的項目:您已經可以在那裡獲得有關版本控制系統的大量資訊。第一個是左下角的版本控制面板。在其中您可以找到所有本地變更並取得提交清單(類似於 git log)。讓我們繼續進行日誌講座。有一個特定的視覺化組件有助於準確地理解開發過程是如何進行的。例如,您可以看到建立了一個新分支,並在txt 中新增了提交標頭,然後將其合併到 master 分支。如果您按一下某個提交,您可以在右上角看到有關該提交的所有資訊:所有變更及其元資料。 Подружим Git с Intellij IDEA - 8此外,您還可以看到進行了哪些更改。而且,衝突在那裡得到了解決。IDEA也完美體現了這一點。如果雙擊在此提交期間更改的文件,我們將看到衝突是如何解決的: Подружим Git с Intellij IDEA - 9值得注意的是,在右側和左側有同一文件的兩個版本需要合併為一個。中間是最終結果。當一個專案有很多分支、提交以及在該專案中工作的使用者時,需要按分支(branch)、使用者(user)和日期(date)分別進行搜尋: Подружим Git с Intellij IDEA - 10而開始之前我要解釋的最後一件事是如何理解我們在哪個分行。我給你一分鐘去搜尋...你找到了嗎?你要放棄嗎?:D 右下角有一個Git: master按鈕,在 Git: 之後顯示了專案目前所在的分支。如果您按一下該按鈕,您可以執行許多有用的操作:移動到另一個分支、建立新分支、重新命名現有分支等等。 Подружим Git с Intellij IDEA - 11

使用儲存庫

有用的熱鍵

要繼續工作,您需要記住一些非常有用的熱鍵:
  1. ctrl + t - 從遠端儲存庫取得最新變更(git pull)。
  2. ctrl + k - 提交/查看目前可用的所有變更。這包括未追蹤和修改的文件(請參閱我關於 git 的文章,其中對此進行了描述)(git commit)。
  3. ctrl + shift + k是將變更推送到遠端儲存庫的命令。所有在本地創建但尚未在遠端提交的提交都將提供推送 (git Push)。
  4. alt + ctrl + z - 將特定檔案中的變更回滾到本機儲存庫中最後建立的提交的狀態。如果您在左上角選擇整個項目,則可以回滾所有檔案的變更。
Подружим Git с Intellij IDEA - 12

我們想要什麼?

為了工作,我們需要掌握無所不在的基本腳本。任務是在單獨的分支中實現新功能並將其推送到遠端儲存庫(然後您需要為主分支建立另一個拉取請求,但這超出了我們文章的範圍)。我需要做什麼?
  1. 取得目前主分支(例如 master)中的所有變更。

  2. 基於這個主要的,為您的工作創建一個單獨的。

  3. 實施新功能。

  4. 前往主分支並檢查您工作時是否有任何新的變更。如果不是,那麼一切都很好,如果是,那麼我們執行以下操作:我們轉到工作分支並將主分支的變更重新設定為我們的分支如果一切順利,那就太好了。但很可能會發生衝突。並且可以提前解決它們,而無需在遠端儲存庫上浪費時間。

    看起來,為什麼要這樣做呢?這是一個良好形式的規則,它可以防止在將分支推送到本機儲存庫後出現衝突(當然,它們有可能仍然存在,但它會變得小得多)。

  5. 將您的變更推送到遠端儲存庫。
接下來發生的事情取決於您的目標和想像。

從遠端伺服器接收變更?

我在自述文件中新增了新提交的描述,並希望收到這些變更。如果在本機和遠端儲存庫中都進行了更改,則可以在合併和變基之間進行選擇。選擇合併。輸入ctrl + tПодружим Git с Intellij IDEA - 13結果,您可以看到 README 發生了怎樣的變化,即:來自遠端儲存庫的變更已被拉出,在右下角您可以看到來自伺服器的變更的所有詳細資訊。 Подружим Git с Intellij IDEA - 14

在master的基礎上建立一個新分支

這裡一切都很簡單。
  1. 到右下角,點選Git: master,選擇+ New Branch

    Подружим Git с Intellij IDEA - 15
  2. 保留「結帳分支」複選框並寫入新分支的名稱。對我來說,這將是readme-improver

    Подружим Git с Intellij IDEA - 16

    之後,Git: master將更改為Git: readme-improver

模擬並行工作

為了出現衝突,必須有人創建它們:D 我將透過瀏覽器使用新的提交來編輯自述文件,從而模擬並行工作。他們說有人在我工作期間對與我相同的文件進行了更改,這將導致衝突。我將從第 10 行刪除“完全”一詞。

實現您的功能

任務是更改README並為新文章添加描述,即git中的工作是透過Intellij IDEA完成的。添加以下內容: Подружим Git с Intellij IDEA - 17更改已完成,現在您可以建立提交。按熱鍵ctrl + k,我們得到: Подружим Git с Intellij IDEA - 18在建立提交之前,您需要仔細查看此視窗中提供的內容。我特意加了一個箭頭來告訴你該往哪裡看。那裡有很多有趣的事情。在“提交訊息”部分中,我們編寫提交的文本,要創建它,您需要單擊“提交”按鈕。我還沒有找到如何使用熱鍵來做到這一點,所以如果有人找到它,寫下來,我會很高興。我們寫自述文件已更改並建立提交。結果,左下角會彈出一個警報,其中包含提交的名稱: Подружим Git с Intellij IDEA - 19

檢查master分支是否有變化

我們完成了任務,它有效,我們編寫了測試,一切都很好。但在推送到伺服器之前,需要檢查主分支在這段時間是否有變化。怎麼會發生這種事?很簡單:有人在你之後被分配了任務,而這個人比你完成得更快。因此,我們轉移到 master 分支。為此,您需要在右下角執行如下圖所示的操作: Подружим Git с Intellij IDEA - 20在 master 分支中,按ctrl + t從遠端伺服器取得其最新變更。如果您查看所做的更改,您可以輕鬆地註意到發生了什麼: Подружим Git с Intellij IDEA - 21如您所見,“完全”一詞被刪除了。也許是行銷部門的人決定不能這樣寫,並給了開發人員更新它的任務。我們現在本地有最新版本的 master 分支。讓我們回到readme-improver。現在我們需要將主分支的變更重新設定為我們的分支。我們這樣做: Подружим Git с Intellij IDEA - 22如果你正確地遵循了我的建議,結果應該是 README 文件中的衝突: Подружим Git с Intellij IDEA - 23這裡還有很多資訊需要理解和吸收。這顯示了存在衝突的文件清單(在我們的例子中是一個元素)。我們可以選擇三個選項:
  1. 接受你的 - 僅接受自述文件改進者的更改。
  2. 接受他們的 - 只接受來自主人的更改。
  3. 合併 - 自己選擇保留什麼和刪除什麼。
目前還不清楚那裡發生了什麼變化,如果變化是在 master 中,那麼那裡需要它們,我們不能只接受我們的變化,所以我們選擇mergeПодружим Git с Intellij IDEA - 24在這裡你可以看到有三個部分:
  1. 這些是來自 readme-improver 的更改。
  2. 結果。目前,它與更改之前相同。
  3. 來自 master 分支的變更。
我們需要以讓每個人都滿意的方式收集結果。因此,我們研究了他們在我們之前所做的事情,並意識到他們只是刪除了「完全」這個詞。好吧,沒問題。這意味著我們將刪除它並添加我們的更改。一旦我們更正結果,您就可以按一下「套用」。之後,將彈出一條通知,表明變基成功: Подружим Git с Intellij IDEA - 25這就是我們使用 Intellij IDEA 解決第一個衝突的方法:D

將更改推送到遠端伺服器

下一步是將變更推送到遠端伺服器並建立拉取請求。為此,只需按ctrl + shift + k即可,然後我們會得到: Подружим Git с Intellij IDEA - 26左側將是尚未推送到遠端儲存庫的提交列表,右側將是所有已推送到遠端儲存庫的檔案變更了。就這樣:點擊Push,你就會高興了:) 如果推播成功,右下角會有這樣的通知: Подружим Git с Intellij IDEA - 27

獎金部分

我最初並不想在文章中添加拉取請求的創建,但結果發現它並不是很完整。因此,我們前往 GitHub 儲存庫(當然,如果它是您的)))並看到 GitHub 已經知道要為我們提供什麼: Подружим Git с Intellij IDEA - 28點擊Compare & pull request,然後點擊Create pull request。由於我們提前解決了衝突,現在在創建拉取請求時,您可以立即合併它: Подружим Git с Intellij IDEA - 29這就是我這次想告訴您的。當然,我只是打開門給你們看了一小部分。您將根據需要自行找到其餘部分。像往常一樣,我邀請您訂閱我的GitHub 帳戶,我在其中發布基於我在工作中使用的各種技術的專案。我最近取得了一項個人成就——我的專案已經得到了一百多個開發者的評級。有人使用你所做的東西是一種令人難以置信的喜悅感。並永遠利用它。

有用的連結

  1. JavaRush:Git 入門:初學者的詳細指南
  2. GitHub:可供使用的示範項目
  3. JavaRush:分析 Git 中的分支策略
  4. JetBrains:設定 Git 儲存庫
  5. Habr:Git 變基
  6. GitHub:我的帳戶
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION