2015-05-05 17 views
6

Tôi đang trong bản sao cục bộ github. Dưới đây là danh sách các chi nhánh:không thể thanh toán chi nhánh git từ xa

$ git branch -a 
* master 
    online-demo 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/develop 
    remotes/origin/gh-pages 
    remotes/origin/master 
    remotes/origin/online-demo 
    remotes/pateketrueke/develop 
    remotes/pateketrueke/gh-pages 
    remotes/pateketrueke/master 

Khi tôi cố gắng để kiểm tra một chi nhánh ở xa, tôi nhận được một lỗi:

$ git checkout develop 
error: pathspec 'develop' did not match any file(s) known to git. 

tôi không thể tìm ra nơi nào mà đến từ. Tôi đoán tôi đã làm như vậy kiểm tra cho các lứa tuổi. Có lẽ tôi đang thiếu một cái gì đó. Dù sao, tôi đã làm git fetch, git fetch origingit pull vì tôi đã hết ý tưởng và vẫn có lỗi tương tự.

Trả lời

13

Bạn không có bất kỳ chi nhánh địa phương nào được gọi là develop. Khi thực hiện git checkout develop và không tìm thấy chi nhánh địa phương nào, git sẽ hiểu rằng bạn muốn tạo một chi nhánh địa phương mới có tên là develop, dựa trên chi nhánh develop trong repo từ xa, nếu có. Trong trường hợp của bạn, bạn có 2 chi nhánh như vậy origin/developpateketrueke/develop, do đó, có một sự mơ hồ.

Bạn có thể rõ ràng hơn về nó bằng cách sử dụng các hình thức sau đây:

git branch develop origin/develop 
git checkout develop 

hoặc

git branch develop pateketrueke/develop 
git checkout develop 

tùy thuộc vào những gì bạn muốn.


Đây có thể được viết tắt là:

git checkout -b develop origin/develop 

hoặc

git checkout -b develop pateketrueke/develop 
+1

vâng, bạn nói đúng. Chìa khóa ở đây là 'sự hoài nghi'. Lỗi git không phải là rất mô tả trong trường hợp này ... – ducin

+0

Vâng, tôi đồng ý rằng lỗi gây hiểu lầm. Tôi cho rằng git không phân giải đối số với một ưu tiên nhất định. Ở đây, nó không tìm thấy nhánh nào để nó giả định HEAD và xử lý đối số '' develop'' như là một đường dẫn. Lệnh checkout với một đường dẫn (ví dụ, một tên tập tin) cho phép đặt trong cây làm việc của bạn một tập tin từ một sha1, refname hoặc bất cứ điều gì. Trong trường hợp này nó cũng thất bại vì nó không tìm thấy bất kỳ tập tin có tên '' phát triển'' trong cây được chỉ bởi HEAD –

0

Bạn có thể thử kiểm tra ra đầy đủ các cam kết SHA

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