Làm cách nào để xóa tất cả các chi nhánh địa phương cùng một lúc?

Bạn đã bao giờ rơi vào tình huống có cả đống cành cây lộn xộn và muốn dọn dẹp chưa?

Quá trình này thực sự khá đơn giản. Tất cả những gì bạn cần là một số mẫu biểu thức chính quy để nhắm mục tiêu tên nhánh, sau đó bạn lướt qua chúng

Lệnh trông như thế này

$ git branch | grep [PATTERN] | xargs git branch -D

Đây là ba lệnh được kết hợp với nhau. Đây là cách họ làm việc

  1. git branch
    
    2 in danh sách các chi nhánh. Nó đứng trước nhánh hiện tại với dấu hoa thị
  2. git branch
    
    3 tìm kiếm danh sách và trả về những dòng phù hợp với mẫu
  3. git branch
    
    4 cung cấp cho chúng tôi danh sách được trả về từ
    git branch
    
    5, sau đó chúng tôi chuyển những danh sách đó cho
    git branch
    
    6, thao tác này sẽ xóa nhánh

Kiểm tra nó đầu tiên

Có thể hữu ích khi thực hiện nhanh hai lệnh đầu tiên để bạn biết mình sẽ xóa gì. Ví dụ: để xem danh sách tất cả các nhánh, ngoại trừ nhánh hiện tại, bạn có thể chạy lệnh này

$ git branch | grep "^[ ]"

Thiết lập một mô hình

Có một khuôn mẫu về cách bạn đặt tên cho các nhánh có thể hữu ích khi dọn dẹp như thế này. Ví dụ: tôi thường đặt trước các nhánh bằng một số khi chúng đang giải quyết một vấn đề cụ thể. Để cung cấp danh sách các nhánh bắt đầu bằng một số, tôi có thể chạy lệnh này

Sau một thời gian, danh sách các nhánh git cục bộ của bạn có thể vượt khỏi tầm kiểm soát, đặc biệt nếu bạn thực hiện tất cả quá trình phát triển của mình trên một nhánh, tạo yêu cầu kéo, hợp nhất nó với nhánh chính và sau đó xóa nhánh git từ xa khi nó được sáp nhập vào nhánh chính. Khi nhánh bị xóa trên kho lưu trữ từ xa, không cần phải giữ nó cục bộ nữa

Dưới đây là lệnh xóa tất cả các nhánh cục bộ đã được hợp nhất vào nhánh chính. Nếu bạn git trunk branch không phải main hoặc bạn muốn xóa tất cả các nhánh đã gộp thành nhánh khác với nhánh chính thì chỉ cần thay đổi 2 chỗ trong lệnh main thành tên nhánh của bạn là gì

Xóa các nhánh đã gộp vào nhánh chính

  1. Mở git bash và điều hướng đến kho lưu trữ git mà bạn muốn dọn dẹp

  2. Lấy bản mới nhất từ ​​git

    git fetch
    

  3. Xem danh sách các chi nhánh git địa phương

    git branch
    

  4. Xóa tất cả các nhánh cục bộ đã được hợp nhất với nhánh chính

    git branch --merged main | grep -v "^\* main" | xargs -n 1 -r git branch -d
    

  5. Xem danh sách các nhánh git địa phương còn lại

    git branch
    

Xóa các nhánh cục bộ không còn tồn tại trên điều khiển từ xa

  1. Mở git bash và điều hướng đến kho lưu trữ git mà bạn muốn dọn dẹp

  2. Lấy bản mới nhất từ ​​git

    git fetch
    

  3. Xem danh sách các chi nhánh git địa phương

    git branch
    

  4. Xóa tất cả các nhánh cục bộ đã được hợp nhất với nhánh chính

    ________số 8

  5. Xem danh sách các nhánh git địa phương còn lại

    git branch
    

Tuy nhiên, nếu bạn muốn xóa một nhánh như vậy [e. g. bởi vì bạn đã tự lập trình vào ngõ cụt và tạo ra các cam kết không đáng để giữ], bạn có thể làm như vậy với cờ "-D"

$ git branch | grep "^[ ]"
0

Điều này sẽ buộc xóa nhánh, ngay cả khi nó chứa các xác nhận chưa được hợp nhất/chưa được xử lý. Nó đi mà không nói. hãy cẩn thận với lệnh này

Tôi có thể hoàn tác việc xóa một chi nhánh không?

Trong hầu hết các trường hợp, nếu bạn không để quá nhiều thời gian, bạn có thể khôi phục nhánh đã xóa

Nếu bạn đang làm việc với Git trên Dòng lệnh, bạn nên xem qua công cụ Git có tên "Reflog". Tìm hiểu thêm về điều này trong loạt video Bộ sơ cứu miễn phí dành cho Git của chúng tôi

Nếu bạn đang sử dụng ứng dụng khách Tower Git, bạn chỉ cần nhấn CMD + Z - giống như bạn sẽ hoàn tác các thay đổi trong trình soạn thảo văn bản - để hoàn tác việc xóa và khôi phục nhánh

Bạn đã chất đống rất nhiều cành cây mà bạn thậm chí không sử dụng nữa và muốn dọn dẹp chúng?

Ghi chú. Chỉ sử dụng cái này nếu bạn chắc chắn rằng các nhánh không còn cần thiết nữa

Xóa chi nhánh địa phương

Bạn có thể xóa một nhánh cục bộ đã được hợp nhất vào điều khiển từ xa và cũng có thể xóa một nhánh cục bộ chưa được hợp nhất. Bạn muốn chắc chắn rằng bạn biết nhánh nào được hợp nhất hay không và để làm điều đó, bạn có thể sử dụng các lệnh sau

  • git branch
    
    2 - để liệt kê tất cả các chi nhánh địa phương
  • git branch
    
    8 - để liệt kê tất cả các chi nhánh từ xa
  • git branch
    
    9 - để liệt kê cả các chi nhánh địa phương và từ xa
  • $ git branch | grep "^[ ]"
    
    10 - để liệt kê tất cả các chi nhánh đã được hợp nhất
  • $ git branch | grep "^[ ]"
    
    11 - để liệt kê tất cả các nhánh không được hợp nhất

Bây giờ để xóa các nhánh cục bộ, bạn muốn thực hiện một trong hai cách này

$ git branch | grep "^[ ]"
3

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Xóa nhiều chi nhánh địa phương

Cảm thấy đủ tự tin và bạn muốn xóa nhiều nhánh cục bộ, bạn có thể thực hiện bằng cách sử dụng lệnh

Ghi chú. Bạn cần cẩn thận khi thực hiện việc này để không xóa một nhánh chưa được hợp nhất và thêm cờ

$ git branch | grep "^[ ]"
12 giúp xác định rằng bạn không làm điều đó

$ git branch | grep "^[ ]"
1

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Để giải thích rõ hơn về lệnh trên,

$ git branch | grep "^[ ]"
10 sẽ liệt kê tất cả các nhánh đã hợp nhất,
$ git branch | grep "^[ ]"
14 sẽ đảm bảo nhánh chính và nhánh chính không bị xóa, bạn có thể thêm các nhánh khác mà bạn muốn loại trừ tại đây.
$ git branch | grep "^[ ]"
15 sẽ tiếp tục và xóa các nhánh còn lại

$ git branch | grep "^[ ]"
9

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Xóa chi nhánh từ xa

Trong trường hợp bạn cần xóa nhánh từ xa vì bạn đã hoàn thành công việc trên nhánh đó và nhánh đó đã được hợp nhất vào nhánh chính từ xa. Bạn có thể xóa một nhánh từ xa bằng cách sử dụng cờ

$ git branch | grep "^[ ]"
16 và git Push tới nhánh từ xa

git fetch
1

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Xóa nhiều chi nhánh từ xa

Khi bạn cần xóa nhiều nhánh từ xa và không muốn thực hiện chúng riêng lẻ bằng lệnh đã nêu trước đó, bạn có thể thực hiện bằng cách sử dụng

git fetch
2

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Thao tác này sẽ xóa tất cả các nhánh đã hợp nhất từ ​​xa ngoại trừ

$ git branch | grep "^[ ]"
17 và
$ git branch | grep "^[ ]"
18. Để giải thích thêm về lệnh

  • $ git branch | grep "^[ ]"
    
    19 - sẽ liệt kê tất cả các nhánh từ xa được hợp nhất
  • $ git branch | grep "^[ ]"
    
    14 - loại trừ nhánh chính và nhánh chính
  • $ git branch | grep "^[ ]"
    
    91 - bởi vì các nhánh từ xa có tiền tố là
    $ git branch | grep "^[ ]"
    
    92, lệnh này sẽ lọc phần đó ra để nó chỉ trả về tên nhánh
  • $ git branch | grep "^[ ]"
    
    93 - xóa các nhánh còn lại

Bây giờ nếu bạn cảm thấy rất tự tin và muốn xóa tất cả các nhánh chưa hợp nhất hoặc tất cả các nhánh từ xa, hãy sử dụng cái này

git branch
0

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Tôi đã thêm lệnh

$ git branch | grep "^[ ]"
94 để in những gì tôi sẽ làm ra màn hình để tôi chắc chắn rằng mình biết mình sắp xóa những gì

Làm cách nào để xóa các nhánh git cục bộ?

Cách xóa các nhánh Git cục bộ .
Mở cửa sổ Git BASH hoặc Cửa sổ lệnh trong thư mục gốc của kho lưu trữ Git của bạn
Nếu cần, hãy sử dụng lệnh git switch hoặc checkout để di chuyển khỏi nhánh bạn muốn xóa
Issue the git branch --delete .. .
Chạy lệnh git branch -a để xác minh nhánh Git cục bộ đã bị xóa

Làm cách nào để xóa tất cả các nhánh cục bộ trong mã VS?

Menu - Xem - SCM, sau đó chọn dự án, Tác vụ khác - Chi nhánh - Xóa chi nhánh . Nếu nhánh bị xóa trên github, trên vscode, Thêm hành động - Kéo, Đẩy-Đồng bộ hóa, nếu không thì vscode vẫn còn trên bộ đệm cũ. Lưu câu trả lời này.

Bạn có thể xóa các chi nhánh địa phương?

Xóa chi nhánh TẠI ĐỊA PHƯƠNG . Tùy chọn -d sẽ chỉ xóa nhánh nếu nó đã được đẩy và hợp nhất với nhánh từ xa. Thay vào đó, hãy sử dụng -D nếu bạn muốn buộc xóa nhánh, ngay cả khi nhánh đó chưa được đẩy hoặc hợp nhất. Delete a branch with git branch -d . The -d option will delete the branch only if it has already been pushed and merged with the remote branch. Use -D instead if you want to force the branch to be deleted, even if it hasn't been pushed or merged yet.

Chủ Đề