
Yêu cầu đầu vào:
- Hãy đọc, làm theo và hiểu bài viết của tôi 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.
- Cài đặt IntelliJ IDEA.
- Phân bổ một giờ thời gian cá nhân để đạt được sự thành thạo hoàn toàn.
Sao chép dự án cục bộ
Có hai lựa chọn ở đây:- Nếu bạn đã có tài khoản GitHub và muốn đẩy thứ gì đó sau này, tốt hơn là rẽ nhánh dự án và sao chép bản sao của riêng bạn.
- Sao chép 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 là kho lưu trữ của tôi :)
-
Sao chép địa chỉ dự án:
-
Mở IntelliJ IDEA và chọn "Nhận từ Kiểm soát phiên bản":
-
Sao chép và dán địa chỉ dự án:
-
Bạn sẽ được nhắc tạo một dự án IntelliJ IDEA. Chấp nhận đề nghị:
-
Vì không có hệ thống xây dựng và điều đó nằm ngoài phạm vi của bài viết này, chúng tôi chọn Tạo dự án từ các nguồn hiện có :
-
Tiếp theo, bạn sẽ thấy màn hình tuyệt đẹp này:
Bây giờ chúng ta đã tìm ra cách nhân bản, bạn có thể xem xung quanh.
Cái nhìn đầu tiên về IntelliJ IDEA dưới dạng giao diện người dùng Git
Hãy xem kỹ 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, chúng ta có ngăn Kiểm soát phiên bản ở góc dưới bên trái. Tại đây, 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 lần xác nhận (tương tự như "git log"). Hãy chuyển sang thảo luận về Nhật ký . Có một hình dung nhất định giúp chúng ta 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 thêm vào txt cam kết, 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, bạn có thể thấy ở góc bên phải 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ó.



Làm việc với một kho lưu trữ
phím nóng hữu ích
Đối với công việc trong tương lai, bạn cần nhớ một vài phím nóng rất hữu ích:- CTRL+T — Nhận các thay đổi mới nhất từ kho lưu trữ từ xa (git pull).
- CTRL+K — Tạo một cam kết / xem tất cả các thay đổi hiện tại. Điều này bao gồm cả các tệp không bị theo dõi và đã sửa đổi (xem bài viết của tôi về git, giải thích điều này) (git commit).
- CTRL+SHIFT+K — Đây là lệnh đẩy các thay đổi vào kho lưu trữ từ xa. Tất cả các xác nhận được tạo cục bộ và chưa có trong kho lưu trữ từ xa sẽ được đẩy (git đẩy).
- 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 lần xác nhận cuối cùng được tạo 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 trong tất cả các tệp.

Chúng ta muốn gì?
Để hoàn thành công việc, chúng ta cần nắm vững một kịch bản cơ bản được sử dụng ở mọi nơi. Mục tiêu là triển khai chức năng mới trong một nhánh riêng biệt và sau đó đẩy nó tới một kho lưu trữ từ xa (sau đó bạn cũng cần tạo một yêu cầu kéo tới nhánh chính, nhưng điều đó nằm ngoài phạm vi của bài viết này). Điều gì là cần thiết để làm điều này?-
Nhận tất cả các thay đổi hiện tại trong nhánh chính (ví dụ: "chính").
-
Từ nhánh chính này, tạo một nhánh riêng cho công việc của bạn.
-
Triển khai chức năng mới.
-
Đi đến nhánh chính và kiểm tra xem có bất kỳ thay đổi mới nào trong khi chúng tôi đang làm việc không. Nếu không, thì mọi thứ đều ổn. Nhưng nếu có thay đổi, thì chúng tôi làm như sau: đi đến nhánh đang hoạt động và khởi động lại các thay đổi từ nhánh chính sang nhánh của chúng tôi. Nếu mọi thứ suôn sẻ, thì thật tuyệt. Nhưng hoàn toàn có thể xảy ra xung đột. Khi nó xảy ra, chúng chỉ có thể được giải quyết trước mà không lãng phí thời gian trong kho lưu trữ từ xa.
Bạn đang tự hỏi tại sao bạn nên làm điều này? Đó là cách cư xử tốt và ngăn xung đột xảy ra 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 xung đột vẫn xảy ra, nhưng nó sẽ nhỏ hơn nhiều ).
- Đẩy các thay đổi của bạn vào kho lưu trữ từ xa.
Nhận các thay đổi từ máy chủ từ xa?
Tôi đã thêm mô tả vào README bằng một cam kết mới và muốn nhận những thay đổi này. Nếu các thay đổi được thực hiện cả trong kho lưu trữ cục bộ và kho lưu trữ từ xa, thì chúng tôi được mời chọn giữa hợp nhất và khởi động lại. Chúng tôi chọn hợp nhất. Nhập CTRL+T :

Tạo một nhánh mới dựa trên master
Mọi thứ đều đơn giản ở đây.-
Đi đến góc dưới cùng bên phải và nhấp vào Git: master . Chọn + Chi nhánh mới .
Bỏ chọn hộp kiểm Chi nhánh thanh toán và nhập tên của chi nhánh mới. Đối với tôi, nó sẽ là readme-improver .

Git: master sau đó sẽ đổi thành Git: readme-improver .
Hãy mô phỏng công việc song song
Để xung đột xuất hiện, ai đó phải 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, do đó mô phỏng công việc song song. Như thể ai đó đã thực hiện các thay đổi trong cùng một tệp khi tôi đang làm việc với nó. Kết quả sẽ là xung đột. Tôi sẽ bỏ từ "fully" khỏi dòng 10.Thực hiện chức năng của chúng tôi
Nhiệm vụ của chúng ta 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 đi qua IntelliJ IDEA. Thêm điều này:


Kiểm tra xem nhánh chính có thay đổi không
Chúng tôi đã hoàn thành nhiệm vụ của mình. 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ủ, chúng ta vẫn cần kiểm tra xem có bất kỳ thay đổi nào trong nhánh chính trong thời gian chờ đợi hay không. Làm thế nào điều đó có thể xảy ra? Khá dễ dàng: ai đó nhận nhiệm vụ sau bạn và ai đó hoàn thành nhiệm vụ đó nhanh hơn bạn hoàn thành nhiệm vụ của mình. Vì vậy, chúng ta cần phải đi đến chi nhánh chính. Để thực hiện việc này, chúng ta cần thực hiện những gì được hiển thị ở góc dưới bên phải trong ảnh chụp màn hình bên dưới:



- chấp nhận của bạn — chỉ chấp nhận những thay đổi từ readme-improver.
- chấp nhận của họ - chỉ chấp nhận những thay đổi từ chủ.
- hợp nhất — tự chọn những gì bạn muốn giữ lại và những gì cần loại bỏ.

- Đây là những thay đổi từ readme-improver.
- Kết quả hợp nhất. Hiện tại, đó là những gì đã tồn tại trước khi có những thay đổi.
- Những thay đổi từ nhánh chính.

Đẩ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. Để làm điều này, chỉ cần nhấn CTRL+SHIFT+K . Sau đó, chúng tôi nhận được:

phần thưởng
Lúc đầu, tôi không muốn thêm việc tạo yêu cầu kéo vào bài viết này, nhưng nó không hoàn chỉnh nếu không có nó. Vì vậy, hãy truy cập kho lưu trữ GitHub (tất nhiên là của bạn :)) và chúng tôi thấy rằng GitHub đã biết những gì chúng tôi muốn:

GO TO FULL VERSION