1. Blog/
  2. Các hoạt động của Cybersoft

10 lệnh Git mới bạn nên bắt đầu sử dụng ngay hôm nay!

21 Lượt xem

Git swich – Một cách an toàn hơn để thay đổi các nhánh      

Trước Git 2.23, Git checkout là lệnh chính để chuyển nhánh, nhưng nó còn làm được nhiều hơn thế nữa. Bạn có thể sử dụng nó để khôi phục tệp tin, tạo nhánh hoặc kiêm tra các commit cụ thể. Điều này làm cho Git checkout trở nên mạnh mẽ nhưng có thể gây nhầm lẫn – đặc biệt bạn chỉ muốn chuyển đổi nhánh mà không đụng chạm đến các tệp tin của mình.

Đó là lý do tại sao Git 2.23 giới thiệu Git switch như một giải pháp thay thế tập trung hơn cho các thao tác vơi nhánh. Với Git switch, bạn có thể tập trung hoàn toàn vào việc quản lý nhánh:

Git restore – Hoàn tác thay đổi một cách an toàn.

Việc này đã giảm nguy cơ vô tình ghi đè leen tệp tin hoặc thực hiện các thay đổi không mong muốn. Nếu bạn từng do dự sử dụng git checkout vì sợ làm sai điều gì đó, git switch sẽ đơn giản hóa quy trình.

Hoàn tác các thay đổi thường liên quan đến việc sử dụng git checkout để khôi phục tệp tin hoặc git reset để di chuyển HEAD của nhánh. Tuy nhiên, cả hai lệnh này đều có thể thay đổi trang thái nhánh của bạn nếu sử dụng không đúng cách: git reset có thể chuyển HEAD của nhánh, trong khi git checkout có thể chuyển nhánh hoặc kiểm tra một commit khác, làm gián đoạn nhánh hiện tại.

Git 2.23 giới thiệu git restore để tập trung hoàn toàn vào việc hoàn tác các thay đổi đối với tệp tin. Nod cung cấp một cách an toàn và đơn giản hơn để khôi phục các thay đổi trong thư mục làm việc hoặc khu vực dàn dựng của bạn, tách biệt rõ ràng các thao tác với tệp tin khỏi cac nhiệm vụ quản lý chính nhánh:

Điều này đặc biệt hữu ích cho người mới bắt đầu hoặc trong các tình huống quan trọng đòi hỏi độ chính xác cao. Bạn có thể hoàn tác các thay đổi mà không lo lắng về việc vô tình chuyển nhánh hoặc thiết lập lại các commit.

Bảo trì Git – Tự động hóa tình trạng kho lưu trữ

Khi các kho lưu trữ phát triển, hiệu suất giảm sút. Các thao tác như git fetch, git status hay git log có thể giảm chậm lại và dữ liệu không sử dụng có thể làm lộn xộn kho lưu trữ của bạn. Trước Git 2.29, bạn phải tự tay chạy các lệnh như git gc (thu gom rác) hoặc git repack để giữ cho kho lưu trữ của bạn được tối ưu hóa.

Git 2.29 đã giới thiệu git maintenance, tự động hóa những tác vụ này cho bạn:


Những tác vụ diễn ra sau hậu trường:

– Thu gom rác (Garbage Collection): Loại bỏ các đối tượng không thể truy cập, chẳng hạn như các commit bị loại bỏ trong quá trình rebase hoặc xóa nhánh.

– Đóng gói lại (Repacking): Hợp nhất các tệp gói bị phân mảnh để tăng hiệu quả lưu trữ.

– Cập nhập đồ thị commit (Commit Graph Updates): Tối ưu hóa việc duyệt lịch sử commit, tăng tốc các lệnh như git log và git blame.

Sử dụng git maintenance sẽ giúp bạn duy trì kho lưu trữ của mình khỏe mạnh và không cần dựa vào những nỗ lực thủ công.

Git Sparse – checkout – Xử lý hiệu quả cho các kho lưu trữ lớn

Monorepos rất tuyệt vời để quản lý nhiều dự án, nhưng việc clone toàn bộ kho lưu trữ khi bạn chỉ cần một thư mục cụ thể có thể có thể không hieeuj quả. Hit 2.25 đã giới thiệu git sparse – checkout để giải quyết vấn đề này:

Với git spare – checkout, bạn có thể chỉ bao gồm các thư mũ hoặc tệp tin bạn cần trong thư mục làm việc của mình, để phần còn lại không bị đụng chạm tới. Từ đó hữu ích choc ac nhóm lớn đang làm việc trên các phần riêng biệt của một monorepo và sẽ giúp bạn tiết kiệm thời gian và không gian lưu trữ.

Git Log – remerge – diff: Hiểu rõ hơn về việc hợp nhất

Các commit hợp nhất thường chỉ hiển thị nhánh nào đã được hợp nhất nhưng chúng không phải lúc nào cũng giải thích rõ các thay đổi cụ thể được đưa vào, đặc biệt khi có xung đột được giải quyết trong quá trình hợp nhất.

Bắt đầu với Git 2.35, bạn có thể sử dụng:

Tùy chọn này tái tạo lại các commit hợp nhất bằng cách thực hiện lại chiến lược hợp nhất đã được ghi nhận và hiển thị các thay đổi cụ thể mà nó đưa nào. Nó hữu ích cho việc gỡ lỗi xung đột hợp nhất hoặc xem lại lịch sử hợp nhất phức tạp.

Git blame – ignore – rev – Bỏ qua các cam kết gây ồn ào

Khi nhóm của bạn thực hiện thay đổi định dạng hàng loạt, git blame có thể mất đi sử hữu ích của nó, vì mỗi dòng đều trỏ đến commit định dạng thay vì mỗi dòng đều trỏ đến commit định dạng thay vì người ban đầu thực hiện.

Được giới thiệu trong Git 2.23, tùy chọn ignore – rev cho phép bạn loại trừ các commit như vậy:

Để duy trì loại trừ này, bạn có thể thiết lập tệp ignore-revs:

Điều này giúp bạn tập trung vào tính xác thực có ý nghĩa và có thể hữu ích trong các cơ sở mã có cập nhập kiểu thường xuyên.

Git range – diff – So sánh và theo dõi các thay đổi giữa các phạm vi commit

Việc viết lại lịch sử, dù là thông qua rebase, cherry – pick hay chỉnh sửa tương tác, đều có there rất khó khăn. Sau khi rebase, bạn có thể tự hỏi các commit được viết lại khác với commit gốc như thế nào. Git range – diff giúp so sánh hai phạm vi commit, cho thấy cách một phạm vi phát triển thành phạm vi khác và nêu baatj các thay đổi của từng commit:

Lệnh này có thể được sử dụng để hiểu sự phát triển của một tính năng hoặc bản sửa lỗi trên cac nhánh khác nhau.

Git worktree – Làm việc trên nhiều nhánh cùng lúc

Việc chuyển nhánh trong một thư mục làm việc duy nhất có thể làm gián đoạn quy trình làm việc của bạn, đặc biệt khi cần làm việc trên nhiêu nhánh. Với git worktree, bạn có there tạo thêm các thư mục làm việc liên kết với cùng một kho lưu trữ.

Git worktree cho phép bạn làm việc trên các nhánh khác nhau mà không cần chuyển đổi hoặc stash. Bạn cũng có thể tạo các worktree tạm thời với các HEAD tách rời để thử nghiệm hoặc cô lập các quá trình xây dựng và triển khai trong các thư mục làm việc riêng biệt.  

Git Rebase – update – refs – Giữa các tham chiếu đồng bộ

Rebase viết lại lịch sử bằng cách thây thế các commit cũ bằng các commit mới, nhưng điều này thường để lại các con trỏ nhánh hoặc thẻ tham chiếu đến các commit lỗi thời. Git 2.38 giới thiệu tùy chọn update – refs để xử lý tự động việc này:

Với lệnh này, Git đảm bảo rằng các nhánh liên quan và các thẻ tham chiếu đến các commit được viết lại sẽ được cập nhập để khớp với lịch sử mới. Điều này loại bỏ nhu cầu cập nhập thủ công mất thời gian và đảm bảo tính nhất quán cho kho lưu trữ của bạn.

Để kiểm soát tốt hơn, bạn có thể cấu hình git rebase để luôn cập nhập các tham chiếu cụ there bằng cách thiết lập:

Điều này hữu ích trong quy trình làm việc cộng tác hoặc khi quản lý nhiều tham chiếu có liên quan đến cùng một lịch sử.

Git commit – fixup và git rebase – autosquash – Sửa lỗi cam kết (Commit)

Mặc dù không phải là một tính năng mới (được giới thiệu trong Git 1.7.4, vào năm 2011), git commit – fixup thường bỏ qua mặc dù là một công cụ hữu ích để duy trì lịch sử commit sạch sẽ. Khi cam kết trên một tính năng, bạn có thể nhận ra rằng bạn cần sửa chữa hoặc cải thiện một commit trước đó. Việc chỉnh sửa lịch sử commit thủ công để bao gồm những thay đổi này có thể dẫn đến sai sót. Git cung cấp git commit – fixup và git rebase – autosquash để tự động hóa quy trình này. 

Tùy chọn fixup tạo ra một commit được đánh dấu để tự động vào commit mục tiêu trong quá trình rebase tương tác với autosquash. Điều này đơn giản hóa quy trình làm sạch lịch sử commit trước khi hợp nhất các thay đổi và sẽ đảm bảo rằng các thay đổi liên quan được nhóm lại với nhau mà không cần nỗ lực thủ công.

200+

Đối tác

8500+

Học viên

92%

Có việc làm
sau khoá học

6

Chi nhánh

TOP
Messenger Icon