Computer >> Máy Tính >  >> Lập trình >> Lập trình

Git Cherry Pick:Hướng dẫn từng bước

Là những nhà phát triển mới bắt đầu, chúng tôi học git đơn giản thông qua việc lặp lại. Chúng tôi nhanh chóng tìm hiểu git pull, git push và git commit từng nghĩa. Khi chúng tôi chuyển sang làm việc trên các dự án lớn hơn và cộng tác với các nhóm, chúng tôi bắt đầu tìm hiểu các lệnh git nâng cao hơn sẽ giúp giữ lịch sử kiểm soát phiên bản của codebase trực tiếp giữa các cá nhân làm việc trong một dự án.

Một trong những lệnh như vậy là git cherry-pick. Lệnh git cherry-pick được sử dụng khi chúng ta muốn lấy các cam kết cụ thể từ một nhánh và gắn chúng vào HEAD của nhánh tính năng khác hoặc nhánh chính.

Git cherry-pick là gì?

Hãy coi việc hái anh đào giống như làm việc trong một dự án nhóm. Mỗi người có một phần cụ thể mà họ cần phải làm việc. Cuối cùng, họ sẽ kết hợp từng phần thành một dự án tổng thể. Bạn có thể lấy các phần của một phần nhất định và nối nó với một phần trong phần khác để dự án sẽ trôi chảy hơn.

Về bản chất, git cherry-pick là gì:chúng tôi lấy một hoặc nhiều cam kết từ một nhánh tính năng và gắn nó dưới dạng một cam kết mới cho một nhánh khác. Hãy xem cách nó hoạt động:

Git Cherry Pick:Hướng dẫn từng bước

Sơ đồ cơ bản này đại diện cho hai nhánh từ một dự án được theo dõi bằng git. Các chữ cái đại diện cho các cam kết khác nhau được thực hiện đối với kho lưu trữ git trên các nhánh tương ứng của chúng. Các dấu gạch ngang thể hiện lịch sử, từ lâu đời nhất đến trẻ nhất. Hãy thử hình dung cấu trúc của hai nhánh và cách chúng hoạt động khi làm theo các bước sau:

Các bước để hoàn thành git cherry-pick

Hãy coi mỗi git commit hoặc chữ cái (như minh họa ở trên) như một quả anh đào. Mỗi quả anh đào có một mã băm duy nhất được liên kết với nó - nếu bạn không chắc chắn hàm băm là gì, hãy nghĩ về nó như một dấu vân tay hoặc số nhận dạng duy nhất được liên kết với cam kết. Chúng tôi sẽ cần băm đó để chọn anh đào đó và thêm nó vào một nhánh khác.

  1. git checkout <name of branch you’d like to grab commit from>
    Thanh toán đến chi nhánh bạn muốn chọn cam / anh đào của mình.
  2. git reflog
    Nhật ký tham chiếu git, reflog , theo dõi các hành động gần đây được thực hiện. Đây là một ví dụ về git reflog:
    % git reflog
    bf654bb (HEAD -> master, origin/master) HEAD@{0}: commit: last commit message made
    2394353 HEAD@{1}: commit: where head was 2 commit messages ago
    b4b51eb HEAD@{2}: commit: where head was 3 commit messages ago


    Nhật ký tham chiếu cam kết của bạn, nếu làm việc với một nhóm lớn, có thể có nhiều thông tin hơn, chẳng hạn như ngày, giờ và / hoặc tác giả thực hiện cam kết. Tuy nhiên, ở đây, chúng ta thấy mã băm cam kết, nhánh nơi thực hiện cam kết, hành động được thực hiện và thông báo cam kết thực tế.

    Khi bạn biết bạn muốn thêm cam kết nào vào nhánh khác, hãy lưu ý đến hàm băm - hàm băm là chuỗi số và ký tự ở đầu mỗi dòng trong ví dụ này.
  3. git checkout
    Sau khi bạn đã ghi chú về băm, hãy chuyển sang nhánh bạn muốn thêm cam kết vào.
  4. git cherry-pick [-x]
    Sử dụng lệnh git cherry-pick với băm cam kết để thêm cam kết vào cây làm việc của nhánh đó. Sử dụng cờ -x khi bạn đang hái anh đào từ một chi nhánh công cộng vì điều này sẽ thêm một dòng nhận xét cam kết ban đầu mà nó được hái từ đó.
    Hãy cùng xem sơ đồ của chúng tôi sau khi chọn quả anh đào:

Hãy cùng xem sơ đồ của chúng tôi sau khi chọn quả anh đào:

Git Cherry Pick:Hướng dẫn từng bước

"Anh đào" của chúng tôi, hoặc băm cam kết, mà chúng tôi đã chọn trong ví dụ này là "C". Sau khi làm theo các bước nêu trên, cam kết đã chọn, “C” trong trường hợp này, được thêm vào làm cam kết cho lịch sử của nhánh thứ hai.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Ghi chú cuối cùng

Điều cuối cùng cần làm là sao chép bất kỳ ghi chú nào từ cam kết được hái anh đào. Sử dụng bản sao ghi chú git <cherry-picked commit hash> <new-commit-hash> để sao chép bất kỳ ghi chú nào đã được thực hiện trong bản cam kết ban đầu.

Ngoài ra, hãy đảm bảo giải quyết mọi xung đột hợp nhất có thể phát sinh do kết quả.
Trong bài viết này, chúng ta đã xem xét quá trình sử dụng lệnh git nâng cao có tên là git cherry-pick. Sử dụng nó khi bạn cần thực hiện một cam kết từ một nhánh và thêm nó vào một nhánh khác.