JavaRush /Blog Java /Random-VI /Hãy kết nối Git với Intellij IDEA
Roman Beekeeper
Mức độ

Hãy kết nối Git với Intellij IDEA

Xuất bản trong nhóm
Như truyền thống, tôi chào mừng các bạn, những Kỹ sư phần mềm cấp cao trong tương lai. Hãy kết nối Git với Intellij IDEA - 1Hôm nay chúng ta sẽ nói về phần tiếp theo hợp lý của bài viết của tôi về Git . Tôi cũng khuyên bạn nên đọc tài liệu về chiến lược phân nhánh mà tôi đã xuất bản trước đó. Trong bài viết về Git, tôi đã mô tả cách làm việc với nó trên dòng lệnh và hôm nay tôi sẽ chỉ cho bạn cách thực hiện tất cả những điều này trong Intellij IDEA. Khi bắt đầu hành trình trở thành nhà phát triển, tôi đã sử dụng dòng lệnh và nghĩ rằng mình không cần sử dụng UI cho vấn đề này. Rốt cuộc, mọi thứ đều rõ ràng và vì vậy... Nhưng đó chính xác là cho đến thời điểm tôi bắt đầu sử dụng Git trong Intellij IDEA... Tôi muốn nói ngay rằng tôi sẽ mô tả trải nghiệm cá nhân của mình. Có một số tùy chọn để giải quyết các vấn đề tương tự bằng cách sử dụng Intellij IDEA và nếu bạn biết cách thực hiện tốt hơn những gì tôi mô tả trong bài viết, hãy viết bình luận và chúng ta sẽ thảo luận.

Những ghi chú giới thiệu cần thiết:

  1. Đọc, lặp lại và hiểu bài viết về git . Điều này sẽ giúp đảm bảo rằng mọi thứ đã được thiết lập và sẵn sàng hoạt động.
  2. Cài đặt Intellij IDEA.
  3. Dành một giờ thời gian cá nhân để hấp thụ hoàn toàn.
Đối với công việc, hãy lấy dự án demo mà tôi đã sử dụng cho bài viết về Git. CẬP NHẬT:Tại thời điểm xuất bản, giao diện người dùng Github mới sẽ có sẵn và một số biểu tượng sẽ không xuất hiện ở vị trí hiển thị trong bài viết. Đừng lo lắng: bạn chỉ cần không chuyển sang giao diện người dùng mới hoặc tìm kiếm chúng.

Sao chép dự án cục bộ

Có hai lựa chọn ở đây.
  1. Nếu bạn đã có tài khoản Github và muốn đẩy thứ gì đó sau này, tốt hơn là bạn nên phân nhánh dự án cho chính mình và sao chép bản sao của mình. Cách tạo một nhánh - Tôi đã mô tả trong chương này một ví dụ về quy trình phân nhánh .
  2. Sao chép từ kho lưu trữ của tôi và thực hiện mọi thứ cục bộ mà không có khả năng đẩy toàn bộ nội dung lên máy chủ. Rốt cuộc, đây sẽ là kho lưu trữ của tôi))
Để sao chép một dự án từ Github, bạn cần sao chép liên kết đến dự án và chuyển nó tới IntelliJ IDEA:
  1. Sao chép địa chỉ dự án:

    Hãy kết nối Git với Intellij IDEA - 2
  2. Mở Intellij IDEA và chọn Nhận từ Kiểm soát phiên bản:

    Hãy kết nối Git với Intellij IDEA - 3
  3. Sao chép và dán địa chỉ vào dự án:

    Hãy kết nối Git với Intellij IDEA - 4
  4. Bạn sẽ được nhắc tạo một dự án Intellij IDEA. Chúng tôi chấp nhận lời đề nghị:

    Hãy kết nối Git với Intellij IDEA - 5
  5. Vì không có hệ thống xây dựng và đây không phải là phạm vi của bài viết, hãy chọn Tạo dự án từ các nguồn hiện có :

    Hãy kết nối Git với Intellij IDEA - 6
  6. Tiếp theo sẽ có một bức tranh sơn dầu như thế này: Hãy kết nối Git với Intellij IDEA - 7Chúng ta đã sắp xếp xong nhân bản, bây giờ chúng ta có thể nhìn xung quanh.

Trước tiên hãy xem Intellij IDEA dưới dạng giao diện người dùng Git

Hãy xem xét kỹ hơn dự án nhân bản: ở đó bạn có thể nhận được rất nhiều thông tin về hệ thống kiểm soát phiên bản. Đầu tiên là bảng Version Control ở góc dưới bên trái. Trong đó, bạn có thể tìm thấy tất cả các thay đổi cục bộ và nhận danh sách các cam kết (tương tự như nhật ký git). Hãy chuyển sang bài giảng Log . Có một thành phần trực quan nhất định giúp hiểu chính xác quá trình phát triển đã diễn ra như thế nào. Ví dụ: bạn có thể thấy rằng một nhánh mới đã được tạo với tiêu đề được cam kết thêm vào txt , sau đó được hợp nhất vào nhánh chính. Nếu bạn nhấp vào một cam kết, ở góc bên phải, bạn có thể thấy tất cả thông tin về cam kết: tất cả các thay đổi và siêu dữ liệu của nó. Подружим Git с Intellij IDEA - 8Hơn nữa, bạn có thể thấy những thay đổi đã được thực hiện. Hơn nữa, xung đột đã được giải quyết ở đó. IDEA cũng thể hiện điều này một cách hoàn hảo. Nếu bạn nhấp đúp vào tệp đã được thay đổi trong lần cam kết này, chúng ta sẽ thấy xung đột đã được giải quyết như thế nào: Подружим Git с Intellij IDEA - 9Điều đáng chú ý là ở bên phải và bên trái có hai phiên bản của cùng một tệp cần được hợp nhất thành một. Và ở giữa là kết quả cuối cùng. Khi một dự án có nhiều chi nhánh, commit và người dùng làm việc trong dự án, bạn cần tìm kiếm riêng theo chi nhánh (chi nhánh), người dùng (người dùng) và ngày (ngày): Подружим Git с Intellij IDEA - 10Và điều cuối cùng tôi muốn giải thích trước khi bắt đầu là hiểu như thế nào chúng tôi đang ở chi nhánh nào. Tôi sẽ cho bạn một phút để tìm kiếm... bạn có tìm thấy nó không? Bạn có đang bỏ cuộc không? :D Ở góc dưới bên phải có nút Git: master , trong đó sau Git: nó hiển thị dự án hiện đang ở nhánh nào. Nếu bạn nhấp vào nút, bạn có thể thực hiện rất nhiều điều hữu ích: chuyển sang nhánh khác, tạo nhánh mới, đổi tên nhánh hiện có, v.v. Подружим Git с Intellij IDEA - 11

Làm việc với kho lưu trữ

Phím nóng hữu ích

Để tiếp tục làm việc, bạn cần nhớ một số phím nóng rất hữu ích:
  1. ctrl + t - nhận những thay đổi mới nhất từ ​​kho lưu trữ từ xa (git pull).
  2. ctrl + k - cam kết/xem tất cả các thay đổi hiện có. Điều này bao gồm cả tệp không bị theo dõi và tệp đã sửa đổi (xem bài viết của tôi về git, điều này được mô tả ở đó) (git commit).
  3. ctrl + shift + k là lệnh để đẩy các thay đổi sang kho lưu trữ từ xa. Tất cả các cam kết được tạo cục bộ và chưa có trên điều khiển từ xa sẽ được cung cấp để đẩy (git push).
  4. alt + ctrl + z - khôi phục các thay đổi trong một tệp cụ thể về trạng thái của cam kết được tạo cuối cùng trong kho lưu trữ cục bộ. Nếu bạn chọn toàn bộ dự án ở góc trên bên trái, bạn có thể khôi phục các thay đổi đối với tất cả các tệp.
Подружим Git с Intellij IDEA - 12

Chúng ta muốn gì?

Để làm việc, chúng ta cần nắm vững chữ viết cơ bản, vốn được sử dụng ở mọi nơi. Nhiệm vụ là triển khai chức năng mới trong một nhánh riêng biệt và đẩy nó đến một kho lưu trữ từ xa (sau đó bạn cần tạo một yêu cầu kéo khác cho nhánh chính, nhưng điều này nằm ngoài phạm vi bài viết của chúng tôi). Tôi cần phải làm gì?
  1. Nhận tất cả các thay đổi hiện có trong nhánh chính (ví dụ: chính).

  2. Dựa trên cái chính này, hãy tạo một cái riêng cho công việc của bạn.

  3. Triển khai chức năng mới.

  4. Đến chi nhánh chính và kiểm tra xem có thay đổi gì mới trong khi bạn đang làm việc không. Nếu không, thì mọi thứ đều ổn, và nếu đúng, thì chúng ta làm như sau: chúng ta đi đến nhánh đang hoạt động và thực hiện lại các thay đổi từ nhánh chính sang nhánh của chúng ta. Nếu mọi việc suôn sẻ thì tuyệt vời. Nhưng cũng có thể có xung đột. Và chúng có thể được giải quyết trước mà không lãng phí thời gian vào kho lưu trữ từ xa.

    Có vẻ như tại sao lại làm điều này? Đây là một quy tắc có hình thức tốt, giúp ngăn ngừa xung đột phát sinh sau khi đẩy nhánh của bạn đến kho lưu trữ cục bộ (tất nhiên có khả năng chúng vẫn tồn tại, nhưng sẽ ít hơn nhiều ).

  5. Đẩy các thay đổi của bạn tới một kho lưu trữ từ xa.
Điều gì xảy ra tiếp theo phụ thuộc vào mục tiêu và trí tưởng tượng của bạn.

Nhận thay đổi từ máy chủ từ xa?

Tôi đã thêm mô tả vào README với một cam kết mới và muốn nhận những thay đổi này. Một lựa chọn được đưa ra giữa hợp nhất và rebase nếu các thay đổi được thực hiện trong cả kho lưu trữ cục bộ và từ xa. Chọn một sự hợp nhất. Nhập ctrl + t : Подружим Git с Intellij IDEA - 13Kết quả là bạn có thể thấy README đã thay đổi như thế nào, tức là. những thay đổi từ kho lưu trữ từ xa đã được kéo lên và ở góc dưới bên phải, bạn có thể xem tất cả chi tiết về những thay đổi đến từ máy chủ. Подружим Git с Intellij IDEA - 14

Tạo một nhánh mới dựa trên master

Mọi thứ đều đơn giản ở đây.
  1. Đi tới góc dưới bên phải và nhấp vào Git: master , chọn + New Branch .

    Подружим Git с Intellij IDEA - 15
  2. Để lại hộp kiểm chi nhánh Checkout và viết tên của chi nhánh mới. Đối với tôi nó sẽ là readme-improver .

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

    Sau này, Git: master sẽ đổi thành Git: readme-improver .

Mô phỏng công việc song song

Để xung đột xuất hiện, phải có ai đó tạo ra chúng :D Tôi sẽ chỉnh sửa README bằng một cam kết mới thông qua trình duyệt và do đó mô phỏng công việc song song. Họ nói rằng ai đó trong quá trình làm việc của tôi đã thực hiện các thay đổi đối với cùng một tệp với tôi, điều này sẽ dẫn đến xung đột. Tôi sẽ xóa từ “hoàn toàn” khỏi dòng 10.

Triển khai chức năng của bạn

Nhiệm vụ là thay đổi README và thêm mô tả cho bài viết mới, nghĩa là công việc trong git được thực hiện thông qua Intellij IDEA. Thêm điều này: Подружим Git с Intellij IDEA - 17Các thay đổi đã hoàn tất, bây giờ bạn có thể tạo một cam kết. Nhấn phím nóng ctrl + k , chúng ta nhận được: Подружим Git с Intellij IDEA - 18Trước khi tạo một cam kết, bạn cần xem kỹ những gì được cung cấp trong cửa sổ này. Tôi đặc biệt đã thêm một mũi tên để chỉ cho bạn nơi cần tìm. Có rất nhiều điều thú vị ở đó. Trong phần Thông báo cam kết , chúng tôi viết văn bản của cam kết và để nó được tạo, bạn cần nhấp vào nút Cam kết . Mình vẫn chưa tìm được cách làm việc này bằng phím nóng nên nếu ai đó tìm ra thì viết mình sẽ rất vui. Chúng tôi viết rằng README đã thay đổi và tạo một cam kết. Kết quả là một cảnh báo sẽ bật lên ở góc dưới bên trái với tên của cam kết: Подружим Git с Intellij IDEA - 19

Kiểm tra xem nhánh chính có thay đổi không

Chúng tôi đã hoàn thành nhiệm vụ, nó hoạt động, chúng tôi viết bài kiểm tra, mọi thứ đều ổn. Nhưng trước khi đẩy lên máy chủ, bạn cần kiểm tra xem có bất kỳ thay đổi nào ở nhánh chính trong thời gian này hay không. Làm sao điều này xảy ra được? Rất đơn giản: ai đó được giao nhiệm vụ sau bạn và người này đã làm việc đó nhanh hơn bạn. Vì vậy, chúng tôi chuyển sang nhánh chính. Để thực hiện việc này, bạn cần thực hiện ở góc dưới bên phải những gì được hiển thị trong hình bên dưới: Подружим Git с Intellij IDEA - 20Trong nhánh chính, nhấn ctrl + t để nhận những thay đổi mới nhất từ ​​máy chủ từ xa. Nếu bạn nhìn vào những thay đổi đã được thực hiện, bạn có thể dễ dàng nhận thấy điều gì đã xảy ra: Подружим Git с Intellij IDEA - 21Như bạn có thể thấy, từ “hoàn toàn” đã bị xóa. Có lẽ ai đó ở bộ phận tiếp thị đã quyết định rằng nó không thể được viết như vậy và giao cho các nhà phát triển nhiệm vụ cập nhật nó. Bây giờ chúng tôi có phiên bản mới nhất của nhánh chính tại địa phương. Hãy quay lại readme-improver . Bây giờ chúng ta cần thực hiện lại các thay đổi từ nhánh chính sang nhánh của chúng ta. Chúng tôi làm: Подружим Git с Intellij IDEA - 22Nếu bạn làm theo đúng mọi thứ với tôi, kết quả sẽ là xung đột trong tệp README: Подружим Git с Intellij IDEA - 23Ở đây cũng có rất nhiều thông tin cần được hiểu và tiếp thu. Điều này hiển thị một danh sách (trong trường hợp của chúng tôi là một phần tử) các tệp có xung đột. Chúng ta có thể chọn ba phương án:
  1. chấp nhận của bạn - chỉ chấp nhận những thay đổi từ readme-improver.
  2. chấp nhận của họ - chỉ chấp nhận những thay đổi từ chủ.
  3. hợp nhất - chọn cho mình những gì cần giữ và những gì cần loại bỏ.
Không rõ điều gì đã thay đổi ở đó và nếu những thay đổi đó là ở phần chính thì chúng cần thiết ở đó và chúng tôi không thể chấp nhận những thay đổi của mình, vì vậy chúng tôi chọn hợp nhất : Подружим Git с Intellij IDEA - 24Ở đây bạn có thể thấy rằng có ba phần:
  1. Đây là những thay đổi từ readme-improver.
  2. Kết quả. Bây giờ nó vẫn giống như trước khi thay đổi.
  3. Những thay đổi từ nhánh chính.
Chúng ta cần thu thập kết quả sao cho làm hài lòng tất cả mọi người. Do đó, chúng tôi đã nghiên cứu những gì họ đã làm TRƯỚC chúng tôi và nhận ra rằng họ chỉ đơn giản là loại bỏ từ “hoàn toàn”. Được rồi, không có vấn đề gì. Điều này có nghĩa là chúng tôi sẽ xóa nó và thêm các thay đổi của chúng tôi. Ngay khi chúng tôi sửa kết quả, bạn có thể nhấp vào Áp dụng . Sau đó, một thông báo sẽ bật lên cho biết quá trình rebase đã thành công: Подружим Git с Intellij IDEA - 25Đây là cách chúng tôi giải quyết xung đột đầu tiên bằng Intellij IDEA :D

Đẩy các thay đổi đến máy chủ từ xa

Bước tiếp theo là đẩy các thay đổi đến máy chủ từ xa và tạo yêu cầu kéo. Để thực hiện việc này, chỉ cần nhấn ctrl + shift + k , sau đó chúng ta nhận được: Подружим Git с Intellij IDEA - 26Ở bên trái sẽ có danh sách các cam kết chưa được đẩy đến kho lưu trữ từ xa và ở bên phải sẽ có tất cả các tệp đã được đã thay đổi. Chỉ vậy thôi: nhấp vào Push và bạn sẽ rất vui :) Nếu Push thành công, sẽ có thông báo như thế này ở góc dưới bên phải: Подружим Git с Intellij IDEA - 27

Phần thưởng

Ban đầu tôi không muốn thêm tính năng tạo yêu cầu kéo vào bài viết, nhưng vì điều này nên nó chưa hoàn thiện lắm. Do đó, chúng tôi đi đến kho lưu trữ GitHub (tất nhiên nếu đó là của bạn)))) và thấy rằng GitHub đã biết những gì sẽ cung cấp cho chúng tôi: Подружим Git с Intellij IDEA - 28Nhấp vào So sánh & yêu cầu kéo , sau đó nhấp vào Tạo yêu cầu kéo . Do chúng tôi đã giải quyết xung đột trước nên giờ đây khi tạo yêu cầu kéo, bạn có thể hợp nhất ngay lập tức: Подружим Git с Intellij IDEA - 29Đó là tất cả những gì tôi muốn nói với bạn lần này. Tất nhiên là tôi chỉ mở cửa và cho bạn xem một phần nhỏ thôi. Bạn sẽ tự mình tìm thấy phần còn lại khi cần thiết. Như thường lệ, tôi mời bạn đăng ký tài khoản GitHub của tôi , nơi tôi đăng các dự án dựa trên nhiều công nghệ khác nhau mà tôi sử dụng tại nơi làm việc. Gần đây tôi đã đạt được một thành tích cá nhân - dự án của tôi đã được hơn một trăm nhà phát triển đánh giá. Đó là một cảm giác vui sướng lạ thường khi ai đó sử dụng những gì bạn làm ra. Và sử dụng nó cho mục đích tốt.

Liên kết hữu ích

  1. JavaRush: Bắt đầu với Git: hướng dẫn chi tiết cho người mới bắt đầu
  2. GitHub: Dự án demo để làm việc
  3. JavaRush: Phân tích chiến lược phân nhánh trong Git
  4. JetBrains: Thiết lập kho lưu trữ Git
  5. Habr: Cuộc nổi loạn Git
  6. GitHub: Tài khoản của tôi
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION