Cách xóa chi nhánh trong Git cục bộ và từ xa

Cách xóa chi nhánh trong Git cục bộ và từ xa

Một trong những tính năng mạnh nhất của Git là các nhánh nhẹ của nó. Chúng cho phép bạn làm việc trên các giai đoạn phát triển song song một cách hiệu quả. Một nhà phát triển thậm chí có thể tạo các nhánh riêng lẻ cho các lỗi riêng biệt. Về cả thời gian và không gian, chi nhánh hầu như không có chi phí.





cách thay đổi biểu tượng thư mục windows 10

Nhiều quy trình công việc git giải quyết cả các nhánh dài hạn và tạm thời. Do đó, thường có nhu cầu xóa các nhánh trong quá trình phát triển. Đôi khi cần phải xóa các nhánh chia sẻ, khỏi máy chủ từ xa, cũng như các nhánh cục bộ.





Tại sao lại xóa chi nhánh?

Đầu tiên, nếu bạn vẫn chưa hiểu rõ về git, thì rất có thể bạn sẽ tạo một chi nhánh và sau đó quyết định rằng bạn không cần phải làm như vậy. Hoặc bạn có thể đang thử nghiệm với các nhánh và muốn tự mình giải quyết. Điều này là tốt vì phân nhánh trong git là một hoạt động nhẹ. Nó rất nhanh và sử dụng hiệu quả dung lượng ổ đĩa.





Do đó, nhiều quy trình phát triển git khuyến khích phân nhánh, ngay cả đối với các nhiệm vụ rất nhỏ hoặc ngắn. Ví dụ, một chiến lược phổ biến là tạo một chi nhánh để sửa một lỗi duy nhất. Điều này đúng ngay cả khi nó chỉ liên quan đến một tác giả thực hiện thay đổi một dòng trong một tệp duy nhất.

Vì những lý do này, việc tạo và xóa các nhánh là các thao tác cần được hiểu rõ. Bạn có thể thấy mình thường xóa các nhánh trong quy trình phát triển điển hình.



Kho lưu trữ mẫu với các nhánh

Các ví dụ sau đề cập đến kho lưu trữ mẫu có cấu trúc sau:

$ git branch -vv
1 dev 1ae41e8 [origin/dev] first commit
2 * main 1ae41e8 [origin/main] first commit

Lưu ý rằng mỗi nhánh cục bộ có một nhánh ngược dòng tương ứng từ điều khiển từ xa: gốc .





Xóa một nhánh bằng dòng lệnh

Cú pháp lệnh cơ bản để xóa một nhánh là:

git branch (-d | -D) [-r] ...

Dạng đơn giản nhất của lệnh xóa một nhánh cục bộ, với điều kiện tất cả các thay đổi của nó đã được hợp nhất:





$ git branch -d dev

Bạn không thể xóa chi nhánh hiện đang hoạt động; nếu bạn cố gắng làm như vậy, bạn sẽ nhận được một thông báo như sau:

error: Cannot delete branch 'main' checked out at '/tmp/sandbox'

Khi mọi thứ đi đúng hướng, bạn sẽ thấy một thông báo xác nhận:

Deleted branch dev (was 1ae41e8).

Nếu bạn xóa một chi nhánh chỉ tồn tại cục bộ, với các thay đổi chưa được hợp nhất, bạn sẽ mất những thay đổi đó. Do đó, git sẽ từ chối xóa một nhánh trong trường hợp như vậy, theo mặc định:

error: The branch ‘dev’ is not fully merged.
If you are sure you want to delete it, run 'git branch -D dev’.

Khi thông báo lỗi thông báo, bạn có thể buộc xóa bằng -NS lá cờ. Tuy nhiên, git sẽ cho phép bạn xóa một nhánh cục bộ chưa được hợp nhất nếu nó tồn tại từ xa:

warning: deleting branch ‘dev’ that has been merged to
'refs/remotes/origin/dev’, but not yet merged to HEAD.
Deleted branch dev (was 9a6d20b).

Xóa một chi nhánh từ xa là khá khác nhau. Bạn sẽ sử dụng git push lệnh cùng với -NS cờ để xóa. Sau đó, cung cấp tên của điều khiển từ xa (thường gốc ) và tên chi nhánh:

$ git push -d origin dev
To github.com:bobbykjack/sandbox.git
- [deleted] dev

Xóa các chi nhánh cục bộ và từ xa với GitHub Desktop

Không giống như chương trình git dòng lệnh, Ứng dụng dành cho máy tính để bàn của GitHub sẽ chỉ cho phép bạn xóa chi nhánh đang hoạt động. Bạn có thể thực hiện hành động này thông qua Chi nhánh trình đơn, bằng cách chọn Xóa bỏ và xác nhận nó:

GitHub Desktop sẽ không cho phép bạn xóa nhánh mặc định — ví dụ: main — mặc dù bản thân git cũng hỗ trợ điều này. Nếu nhánh mặc định là nhánh hiện đang hoạt động, ứng dụng sẽ tắt tác vụ menu.

Nếu chi nhánh cũng đại diện cho một chi nhánh từ xa, GitHub Desktop cũng cung cấp tùy chọn xóa nó khỏi điều khiển từ xa:

Xóa các nhánh bằng GitKraken

GitCrack hiển thị các chi nhánh cục bộ và từ xa của kho lưu trữ của bạn trong thanh bên bên trái. Bạn phải xóa từngriêng biệt.

Di chuột qua tên chi nhánh thích hợp và nhấp vào Chi nhánh menu hành động trông giống như ba dấu chấm dọc. Từ menu, chọn Xóa bỏ :

Bạn sẽ thấy một thông báo xác nhận cho bạn biết rằng đây là một hoạt động phá hoại. Bạn có thể xác nhận rằng bạn muốn tiếp tục với Xóa bỏ cái nút:

Phản ánh hành vi mặc định của chương trình dòng lệnh git, trước tiên bạn phải chuyển sang một nhánh khác với nhánh bạn đang xóa. Nếu không, bạn sẽ thấy thông báo lỗi:

Xóa các nhánh cục bộ và từ xa bằng Tower

Xóa một nhánh với Tòa tháp tương tự như việc xóa một nhánh với GitKraken. Các nhánh địa phương và từ xa được hiển thị trong bảng điều khiển ở phía bên tay trái. Nhấp chuột phải vào bất kỳ nhánh nào và chọn tùy chọn Xóa từ trình đơn ngữ cảnh:

Một điểm khác biệt chính là một nhánh từ xa có thể bị xóa cùng với nhánh cục bộ của nó, trong quá trình xác nhận:

Xóa chi nhánh trên GitHub

GitHub chỉ hoạt động như một nguồn từ xa, vì vậy các nhánh ở đó là từ xa theo mặc định. Nếu bạn xóa một chi nhánh bằng cách sử dụng trang web GitHub, bạn sẽ phải xóa chi nhánh cục bộ tương ứng bằng một trong các phương pháp khác tại đây.

Cũng như ứng dụng GitHub Desktop, trang web GitHub sẽ không cho phép bạn xóa nhánh mặc định. Tùy chọn chỉ đơn giản là không xuất hiện. Tuy nhiên, xóa một nhánh là đơn giản. Từ kho lưu trữ Mã số trang, nhấp vào chi nhánh liên kết, xác định chi nhánh để xóa, sau đó nhấp vào Xóa chi nhánh này biểu tượng, trông giống như một thùng rác:

Lưu ý rằng không có kiểm tra cho các thay đổi chưa được hợp nhất, vì vậy trên GitHub, nhánh sẽ bị xóa ngay lập tức. Tuy nhiên, vì nó sẽ luôn đại diện cho một nhánh từ xa, đây phải là hành vi mà bạn mong đợi.

Lưu ý rằng, sau khi xóa, bạn sẽ thấy một nút để Khôi phục các chi nhánh. Tuy nhiên, đây chỉ đơn giản là một tính năng hoàn tác hữu ích, trong trường hợp bạn vô tình nhấp vào biểu tượng xóa. Đừng dựa vào nó, vì ngay sau khi bạn làm mới hoặc điều hướng khỏi trang, bạn sẽ mất tùy chọn!

Xóa các chi nhánh cục bộ và từ xa trên Bitbucket

Bitbucket, giống như GitHub, sẽ không cho phép bạn xóa nhánh mặc định. Bitbucket gọi đây là Chi nhánh chính trong Cài đặt kho lưu trữ . Bạn có thể xóa bất kỳ chi nhánh nào khác được liệt kê trên Chi nhánh tab, thông qua tương ứng của nó Hành động thực đơn:

Bạn cũng có thể xóa nhiều nhánh cùng một lúc nếu bạn đang thực hiện một hoạt động dọn dẹp lớn:

Xóa các nhánh là một phần của Quy trình công việc Git điển hình

Các nhánh Git có thể làm phức tạp quy trình làm việc của bạn, đặc biệt là một với các nhánh cục bộ, từ xa và theo dõi. Nhưng để phát triển hàng ngày một cách đơn giản, bạn có thể luôn tạo và xóa các chi nhánh cục bộ. Đây là khía cạnh cốt lõi của quy trình làm việc git điển hình mà bạn nên làm quen.

Đăng lại Đăng lại tiếng riu ríu E-mail Cách sử dụng các nhánh Git để cấu trúc dự án lập trình của bạn

Trong bài viết này, chúng tôi sẽ xem xét việc phân nhánh mã của bạn có nghĩa là gì, cách thực hiện và các cách quản lý cập nhật cho nhánh git 'chính'.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • GitHub
Giới thiệu về tác giả Bobby Jack(58 bài báo đã xuất bản)

Bobby là một người đam mê công nghệ, người đã làm việc như một nhà phát triển phần mềm trong gần hai thập kỷ. Anh ấy đam mê chơi game, làm Biên tập viên đánh giá tại Tạp chí Switch Player và đắm mình trong tất cả các khía cạnh của xuất bản trực tuyến và phát triển web.

Xem thêm từ Bobby Jack

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký