Xóa nhánh Git an toàn: dọn dẹp kho mã của bạn

0 0 0

Người đăng: Vũ Tuấn

Theo Viblo Asia

Trong Git, cũng như hầu hết các hệ thống quản lý phiên bản khác, quản lý nhánh đóng vai trò quan trọng trong việc giữ cho kho mã sạch sẽ và dễ bảo trì. Việc dọn dẹp các nhánh không còn cần thiết giúp ngăn ngừa sự lộn xộn và giữ cho quy trình làm việc gọn gàng.

Trong bài viết này, bạn sẽ học cách xóa cả nhánh Git cục bộ và từ xa, đồng thời thực hành với các ví dụ về cách tránh một số cạm bẫy thường gặp. Cho dù là dọn dẹp sau khi một tính năng đã được hợp nhất hay xóa các nhánh lỗi thời, việc biết cách xóa chúng chính xác là một phần quan trọng của việc quản lý dự án.

Hiểu rõ hơn về nhánh Git

Là lập trình viên, chúng ta thường tạo các nhánh liên quan đến tính năng hoặc nhiệm vụ. Một nhánh trong Git về cơ bản là một điểm thời gian trên dự án cho phép chúng ta làm việc trên các sửa đổi mà không làm xáo trộn nhánh chính của kho mã. Nó giống như một sandbox nơi tôi có thể thử nghiệm và thực hiện các điều chỉnh, xem xét rủi ro có thể ảnh hưởng đến tính toàn vẹn của dự án chính.

Điều này trở nên rất quan trọng khi quản lý các nhánh thông qua một dự án lớn có nhiều người đóng góp. Tôi muốn kho lưu trữ của mình được dọn dẹp cho bản thân và đồng nghiệp của tôi. Khi một nhánh đã hoàn thành mục đích của nó, chẳng hạn như chúng ta đã hợp nhất các thay đổi trong nhánh chính, thì chúng ta nên quyết định xem liệu chúng ta có còn cần nó nữa hay không.

Việc dọn dẹp nhánh không sử dụng thường xuyên có thể giảm bớt sự nhầm lẫn và giúp việc điều hướng dễ dàng hơn thông qua kho lưu trữ của chúng ta. Bên cạnh đó, việc giữ cho những thứ này sạch sẽ được thực hiện bằng một lệnh đơn giản, cụ thể là git branch, lệnh này liệt kê tất cả chúng; điều này cho thấy rất rõ ràng về những gì nên giữ lại và những gì có thể bị xóa. Do đó, với tất cả các tiện ích này, chúng ta có thể thực thi một cách phát triển có cấu trúc và tinh gọn.

Lý do nên xóa nhánh Git

Trong quá trình phát triển, chúng ta thường gặp những trường hợp tạo nhánh cho một số tính năng hoặc nhiệm vụ cụ thể. Khi các thay đổi được hợp nhất, rõ ràng, chúng ta sẽ loại bỏ chúng vì chúng sẽ chỉ làm cho kho lưu trữ của chúng ta trở nên lộn xộn.

Thật vậy, việc dọn dẹp các nhánh sau khi mục đích của chúng đã được phục vụ mang lại nhiều lý do: ít nhất là tổ chức tốt hơn, giảm bớt sự nhầm lẫn và điều hướng dễ dàng hơn thông qua kho lưu trữ của chúng ta.

Khi tôi nhìn vào một kho lưu trữ chứa đầy các nhánh cũ, đôi khi bắt đầu khó tìm ra nhánh nào vẫn còn phù hợp trong bối cảnh quy trình làm việc hiện tại của chúng ta. Những sai lầm có thể xảy ra do nhầm lẫn về việc cố gắng hợp nhất một nhánh lỗi thời hoặc làm việc trên một thứ gì đó đã được tích hợp.

Để phù hợp với việc phân nhánh vô ích, mọi thứ giữ cho kho mã được sắp xếp hợp lý và dễ bảo trì hơn thường xuyên. Bên cạnh đó, việc xóa các nhánh này giúp nhóm của chúng ta tập trung vào nhiệm vụ hiện tại, thay vì nghĩ về các nhánh lỗi thời.

Do đó, điều này hoạt động như một cách bản năng để duy trì kiểm soát phiên bản tốt và do đó, cần được cập nhật thường xuyên. Chúng ta nên thực hành xóa những nhánh không phục vụ mục đích hữu ích nào được cung cấp cho dự án của chúng ta vì lợi ích chung.

Cách xóa nhánh cục bộ trong Git

Việc xóa một nhánh cục bộ mà bạn không ở trên tương đối dễ dàng và bạn thực hiện bằng cách chạy lệnh sau: Trước tiên, bạn cần phải thoát khỏi nhánh mà bạn muốn xóa. Bạn chuyển sang bất kỳ nhánh nào khác bằng cách sử dụng lệnh git checkout <branch_name>. Ví dụ: để chuyển sang nhánh 'main', bạn sẽ chạy:

git checkout main

Sau khi không còn cần thiết nữa, bạn sẽ muốn xóa nhánh đó. Sau khi bạn đã chuyển khỏi nhánh đó, bạn có thể xóa nhánh cục bộ. Để xóa một nhánh, Git cung cấp hai biến thể: -d và -D.

Tùy chọn -d cho phép xóa nhánh trong trường hợp nó đã được bao gồm trong một nhánh khác. Ví dụ: để xóa một nhánh có tên 'feature/login' đã được hợp nhất trước đó, bạn sẽ sử dụng:

git branch -d feature/login

Nếu nhánh chưa được hợp nhất và bạn muốn buộc xóa nó, thì bạn sẽ sử dụng tùy chọn -D:

git branch -D feature/login

Hãy cẩn thận với lệnh sử dụng tùy chọn -D vì điều này sẽ buộc nhánh bị xóa vĩnh viễn và bạn sẽ mất dữ liệu nếu có những thay đổi chưa được hợp nhất trên nhánh đó. Luôn đảm bảo bạn xem xét các nhánh của mình trông như thế nào trước khi chạy các lệnh này.

Xóa các nhánh Git từ xa

Đối với việc quản lý các nhánh từ xa, nó hơi khác so với các nhánh cục bộ. Bạn sẽ xóa một nhánh từ xa bằng lệnh này: git push origin --delete <branch_name> .

Ngay trước khi xóa một nhánh, điều cần thiết là bạn xem các nhánh hiện có của mình bằng git branch -a, một lệnh hiển thị cả cục bộ và từ xa. Giả sử, ví dụ, tôi muốn xóa một nhánh từ xa - 'feature/login'. Sau khi hoàn tất, điều đầu tiên tôi làm là kiểm tra các nhánh của mình bằng cách sử dụng:

git branch -a

Điều này sẽ liệt kê tất cả các nhánh; do đó, nó sẽ giúp tôi xác nhận rằng 'feature/login' tồn tại từ xa. Sau khi xác nhận, tôi có thể xóa nhánh bằng cách sử dụng:

git push origin --delete feature/login

Việc dọn dẹp các nhánh từ xa rất quan trọng vì nếu không xóa, chúng có thể được phục hồi.

Khắc phục sự cố khi xóa nhánh

Đôi khi các nhánh không bị xóa sạch sẽ và rõ ràng. Chương này đề cập đến một số vấn đề thường gặp, chẳng hạn như cố gắng xóa một nhánh hiện đang được chọn và sử dụng sai cờ -d.

Một vấn đề thường gặp xảy ra khi tôi cố gắng xóa một nhánh mà tôi hiện đang ở trên đó. Git sẽ không cho phép điều này. Để kiểm tra xem tôi đang ở nhánh nào, tôi có thể sử dụng lệnh:

git branch

Lệnh này liệt kê tất cả các nhánh, nhánh hiện tại được đánh dấu bằng dấu hoa thị (*). Đầu tiên, tôi cần chuyển sang một nhánh khác bằng cách sử dụng:

git checkout <another-branch>

Một vấn đề khác là tùy chọn -d không hoạt động vì nó chỉ xóa một nhánh đã được hợp nhất vào nhánh cha của nó. Nếu tôi làm:

git branch -d <branch-name>

Và gặp lỗi, tôi biết nhánh đó chưa được hợp nhất. Trong trường hợp đó, tôi có thể sử dụng tùy chọn xóa buộc với:

git branch -D <branch-name>

Tuy nhiên, đây là một lệnh cần được đưa ra một cách cẩn thận vì nó cũng sẽ xóa các thay đổi chưa được hợp nhất. Vì vậy, việc biết chính xác các nhánh của tôi là gì và chúng đang ở trạng thái nào sẽ giúp tôi tránh mất dữ liệu trong khi quản lý chúng.

Kết luận

Việc xóa các nhánh trong Git khá đơn giản, nhưng bạn cần phải biết cách xử lý cả nhánh cục bộ và nhánh từ xa. Để đạt được điều đó, bạn sẽ sử dụng các bước thích hợp với các lệnh phù hợp để tránh làm rối kho mã của mình, giúp quy trình làm việc của bạn dễ dàng hơn.

Luôn kiểm tra các thay đổi chưa được hợp nhất trước khi buộc xóa một nhánh và đảm bảo không bao giờ xóa một nhánh mà bạn đang ở trên đó. Việc tuân theo các phương pháp hay nhất này sẽ giúp bạn dễ dàng quản lý các nhánh Git của mình.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 734

- vừa được xem lúc

Tập hợp những câu lệnh GIT hữu dụng

Dưới đây là một vài ví dụ về các câu lệnh Git mà tôi thường dùng. git config --global user.name "John Doe". git config --global user.

0 0 68

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 80

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 1): Một ít lý thuyết

CI/CD là gì. Về mặt khái niệm là vậy nhưng về mặt triển khai thì CI/CD là quá trình tự động thực hiện các quá trình build, test, release, deploy khi có các trigger như commit/merge code lên một branch định sẵn hoặc có thể là tự động chạy theo một lịch cố định.

0 0 128

- vừa được xem lúc

Giới thiệu về Git LFS

. Git LFS là gì . Git LFS làm điều này bằng cách thay thế các tệp lớn trong repo của bạn bằng một con trỏ nhỏ.

0 0 37

- vừa được xem lúc

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 85