2012-01-06 23 views
14

tôi có 2 chi nhánh từ xa:Làm cách nào để xóa một nhánh từ xa trong GitHub?

- pending-issues-in-project 
- new-issues-in-project 

Tôi cố gắng để xóa pending-issues-in-project như thế này:
git push origin :pending-issues-in-project, nhưng tôi đã nhận lỗi:

error: unable to push to unqualified destination: pending-issues-in-project 
The destination refspec neither matches an existing ref on the remote nor 
begins with refs/, and we are unable to guess a prefix based on the source ref. 
error: failed to push some refs to '[email protected]:forkedRepo/RepoName.git' 

Vì vậy, tôi nghĩ có thể được tôi đã xóa pending-issues-in-project chi nhánh , nhưng khi tôi chạy
git branch -a nó hiển thị chi tiết pending-issues-in-project chi nhánh trong danh sách.
Khi tôi thử cùng một lúc (thử xóa) cho new-issues-in-project, nó hoạt động.
Tôi đã xóa cả hai nhánh từ máy chủ cục bộ bằng cách sử dụng git branch -D branchName.

Nếu lỗi xảy ra vì nhánh không tồn tại trong kho thì lý do tại sao nó nằm trong danh sách chi nhánh từ xa?

Có cách nào để xóa mạnh nhánh từ xa không?

Cảm ơn bạn đã dành thời gian.

+0

Chi nhánh git -r' cung cấp cho bạn những gì? –

+0

của nó đưa ra danh sách chi nhánh mà cũng có nguồn gốc/đang chờ-vấn đề-in-dự án, mà tôi đang cố gắng để xóa. –

Trả lời

19

Bạn phải làm:

git remote prune origin 

để loại bỏ chi nhánh theo dõi từ xa trong kho git địa phương của bạn (mận loại bỏ bất kỳ chi nhánh đó không tồn tại trong nguồn gốc từ xa nữa). Sau đó, bạn sẽ không thấy nó dưới git branch -a

7

Chi nhánh bạn đang xem là những gì được gọi là nhánh [theo dõi] từ xa. Nó nằm trong kho lưu trữ cục bộ của bạn và nó đại diện cho vị trí cuối cùng bạn thấy chi nhánh đó trong kho lưu trữ từ xa. Git sử dụng các nhánh như thế này để bạn không phải nói chuyện với kho lưu trữ từ xa mỗi lần bạn muốn xử lý nó; bạn chỉ cần cập nhật/tìm nạp một lần, nhánh kệ từ xa được cập nhật và bạn có thể làm việc từ đó. Trong trường hợp của bạn, nhánh trong kho từ xa đã bị xóa từ lâu; bạn chỉ cần xóa bản sao trong kho lưu trữ cục bộ của mình.

Có hai cách chính để xóa nó:

  • git branch -d -r origin/pending-issues-in-project loại bỏ chỉ chi nhánh; và
  • git remote prune origin xóa tất cả các nhánh từ xa cũ đó. Bạn cũng có thể cập nhật cùng một lúc: git remote update --prune origin
0

tha thứ cho tiếng anh vụng về của tôi. tôi hy vọng bạn có thể hiểu câu trả lời của tôi.

  1. lệnh git push origin :pending-issues-in-project có thể là sai. Có thể bạn muốn nói: git push origin pending-issues-in-project. Nó đẩy một nhánh vào github.

  2. Nếu lỗi xảy ra vì nhánh không tồn tại trong kho lưu trữ thì tại sao nó lại nằm trong danh sách chi nhánh từ xa? Vì git là một hệ thống điều khiển phiên bản phân tán, máy chủ của github có một cơ sở dữ liệu để lưu trữ repo .git và dữ liệu bạn đẩy vào nó.Vì vậy, nếu lệnh sử dụng của bạn: git branch -de branchName, nó chỉ xóa chi nhánh cục bộ và nó không can thiệp vào .git của github và dữ liệu bạn đã đẩy vào nó.

  3. Có cách nào để xóa mạnh nhánh từ xa không? có, điều đó là có thể. lệnh là:

    git push origin --delete <branchName> 
    
  4. Nếu bạn muốn biết thêm về phân phối tính năng hệ thống điều khiển của phiên bản git, bạn có thể thấy liên kết này hữu ích: git's distributed feature.

    Và nếu bạn muốn biết thêm về việc xóa chi nhánh trên github bằng git, bạn có thể đọc về nó here.

+0

Bạn hỏi chính xác điều gì? Tôi xin lỗi nhưng tôi gặp khó khăn trong việc hiểu, ngay cả sau khi tôi đã chỉnh sửa bài đăng của bạn. – Quillion

Các vấn đề liên quan