CodeGym /Khóa học Java /Python SELF VI /Làm việc với nhánh git trong PyCharm

Làm việc với nhánh git trong PyCharm

Python SELF VI
Mức độ , Bài học
Có sẵn

11.1 Nhánh trong git

Làm việc với nhánh (branches) trong Git — là một trong những khía cạnh chính của quản lý phiên bản, cho phép phát triển song song nhiều dòng trong một repository. Nhánh hoá làm cho Git trở thành công cụ mạnh mẽ cho sự hợp tác, thử nghiệm và quản lý các phiên bản khác nhau của dự án.

Bạn có thể coi nhánh trong Git như các thư mục, nơi Git sao chép dự án của bạn. Bạn có thư mục chính của dự án của bạn trong repository cục bộ của bạn — master. Git có thể tạo các bản sao của thư mục này để bạn có thể thử nghiệm mà không nguy cơ làm hỏng mã chính đang hoạt động tốt. Những thư mục-sao chép này được gọi là nhánhbranches.

Nhánh — là các lựa chọn thay thế cho mã. Giả sử, bạn muốn thay đổi điều gì đó trong một dự án lớn hoặc thực hiện một thử nghiệm, trong đó bạn không hoàn toàn chắc chắn. Bạn sẽ làm gì nếu không có Git?

Bạn có thể sao chép dự án vào một thư mục mới và thử thay đổi mọi thứ trong đó. Nếu kết quả làm bạn hài lòng, bạn có thể sao chép nó vào thư mục chính. Nếu không thích — quên nó đi, hoặc là xoá nó đi hoàn toàn.

Hãy xem xét một ví dụ từ đời thực, chẳng hạn như viết sách:

  1. Bạn có bản thảo của một cuốn sách (nhánh chính).
  2. Bạn quyết định thử thay đổi kết thúc truyện (tạo nhánh mới).
  3. Bạn viết kết thúc mới trong một tài liệu riêng biệt (làm việc trong nhánh mới).
  4. Nếu kết thúc mới tốt hơn, bạn thay thế kết thúc cũ trong bản thảo (hợp nhất nhánh).
  5. Xóa tài liệu với kết thúc mới (xóa nhánh).

11.2 Tạo nhánh

Tạo một nhánh trong PyCharm rất đơn giản.

Nhập tên nhánh.

PyCharm sẽ ngay lập tức hiển thị tên nhánh hiện tại của bạn trên menu:

Trước đó là gì?

Trước đây là tên nhánh đầu tiên và chủ yếu của bạn — master.

Bây giờ hiển thị là test, có nghĩa là Git (dưới sự chỉ đạo của PyCharm) không chỉ tạo ra nhánh mới mà còn ngay lập tức chuyển sang nó.

Thêm một số mã vào tập tin main.py của nhánh hiện tại (test) và commit nó.

11.3 Chuyển đổi giữa các nhánh

Bước 1. Chọn nhánh.

Bây giờ hãy chuyển sang nhánh cũ của chúng ta. Nhấp vào menu phía trên, và chúng ta thấy gì?

Đừng bối rối — mọi thứ rất đơn giản:

Local — là danh sách các nhánh của git-repository cục bộ của bạn; ở đây có hai cái:

  • test
  • master

Remote — là repository trên máy chủ của bạn, nơi lưu trữ trên GitHub. Chúng ta đã gửi các thay đổi của bạn lên đó, nhưng nhánh mới không có ở đó, điều này là hợp lý. Repository từ xa có tên là origin, và chỉ có nhánh master trong đó.

Recent — là danh sách tên của các nhánh gần đây, mà bạn đã làm việc. Mục này được thêm vào trong PyCharm để tiện lợi và nhanh chóng.

Tên origin/master bên phải của tên repository cục bộ — là tên của repository từ xa mà nó đang đồng bộ hóa, và nơi thay đổi sẽ được gửi đến.

Bước 2. — Tải mã của nhánh vào thư mục hiện tại.

Bước 3. Kiểm tra:.

Tôi có nhánh (master) xuất hiện và mã cũ.

11.4 Gộp nhánh

Bây giờ hãy thử hợp nhất mã từ hai nhánh của chúng ta.

Bước 1. Đầu tiên thêm vào dự án của chúng ta một tập tin mới — init.py và viết một số mã trong đó.

  • Tạo tập tin init.py
  • Viết trong đó mã print("Xin chào")
  • Commit tập tin.

Đây là cách mà hai tập tin của tôi trong nhánh master trông như thế nào:

Bước 2. Gộp nhánh.

Chúng ta sẽ nhập các thay đổi trong nhánh test vào nhánh hiện tại (master).

Để làm điều này, chúng ta cũng sử dụng menu phía trên và lệnh «Merge ‘test’ into ‘master’».

Bước 3. Kiểm tra kết quả:.

Kiểm tra:

  • Phía trên vẫn hiển thị nhánh master
  • Chúng ta có hai tập tin: init.py và main.py
  • Tập tin main.py chứa mã mà đã được thêm vào trong nhánh test.

11.5 Xung đột khi gộp

Đôi khi xung đột xảy ra khi gộp nhánh.

Nếu bạn thực hiện những thay đổi trong một tệp trong các nhánh khác nhau và cố gắng gộp chúng, có thể xảy ra xung đột.

Xung đột tệp văn bản

Git — là một hệ thống rất thông minh, nó hiểu loại tệp. Nếu bạn thực hiện các thay đổi ở các vị trí khác nhau của những tệp mà nó coi là văn bản, thì nó chỉ cần chuyển các thay đổi từ một tệp sang tệp khác vào đúng vị trí, giống như người làm.

Xung đột tệp nhị phân

Nhưng nếu bạn thực hiện những thay đổi trong hình ảnh hoặc tài liệu, Git sẽ không cố gắng gộp các phần của chúng thành một tệp, nó chỉ đề nghị bạn chọn phiên bản tệp nào bạn muốn giữ trong nhánh hiện tại.

Giải quyết xung đột thủ công:

Nếu bạn thực hiện thay đổi ở cùng một vị trí của tệp văn bản, Git sẽ không thể gộp đúng các phiên bản khác nhau và sẽ đề nghị bạn làm điều đó.

Đây là cách nó có thể trông như thế nào:

Bạn thấy gì ở đây:

  • Bên trái là nội dung của tệp main.py của nhánh master
  • Bên phải là nội dung của tệp main.py của nhánh test
  • Ở giữa PyCharm đề nghị bạn viết phiên bản mã cuối cùng (bạn có thể nhấp vào các nút «>>»«<<», để tự động chèn các thay đổi từ một trong các tệp).

Tôi đã chọn phương án master và đã viết mã bằng tay. Đây là kết quả của tôi.

11.6 Lịch sử thay đổi

Một điều hữu ích và thú vị khác: bạn có thể kiểm tra lịch sử thay đổi bất kỳ tệp nào, bằng cách nhấp vào nút Show History. Có hai vị trí mà nó có thể nằm — hãy tìm nó.

Đây là cách lịch sử thay đổi xuất hiện đối với tôi cho tệp main.py:

Giải thích:

  • Bên trái bạn thấy lịch sử thay đổi của tệp cụ thể:
    • Thay đổi mới hơn thì nằm ở trên; càng cũ thì càng ở dưới.
    • Tại đây cũng hiển thị lịch sử hợp nhất nhánh.
  • Bên phải — là những thay đổi đã được thực hiện trong commit cụ thể.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION