2013-02-16 24 views
48

Làm cách nào để gửi yêu cầu kéo từ repo cục bộ hiện có?Làm thế nào để gửi yêu cầu kéo từ một repo nhân bản?

Thông thường, tôi muốn xem một số mã nguồn của thư viện từ github, vì vậy tôi sao chép nó. Sau đó, tôi phát hiện ra một số vấn đề với mã và nâng cao nó trên một danh sách gửi thư, thường đi qua. Tác giả thư viện nói "tìm kiếm tốt đẹp, bạn có thể gửi yêu cầu kéo không?".

Và câu trả lời là "không dễ dàng". Tôi chưa chia nhỏ repo, Ive nhân bản nó. Và dường như không có cách nào tôi có thể tìm thấy để gửi yêu cầu kéo từ một repo nhân bản?

Nếu giới hạn này là đúng, có vẻ như phản ứng hợp lý là ngã ba bất cứ thứ gì và mọi thứ bạn từng xem, chỉ để nếu bạn có thể muốn đóng góp, bạn có thể. Và điều đó sẽ lấp đầy tài khoản github của bạn với nhiều nhánh không hoạt động.

Dường như không có nhiều thảo luận về vấn đề này - tôi có phải là người duy nhất mà vấn đề này ảnh hưởng không?

+2

Kể từ khi nhận thấy câu hỏi này rất giống nhau: http://stackoverflow.com/questions/4209208/how-to-convert-a-readonly-git- clone-from-github-to-a-forked-one –

Trả lời

38

Fork repo trên GitHub, sau đó thêm repo ngã ba của bạn như một điều khiển từ xa để sao chép nhân bản địa phương của bạn:

git remote add myfork https://github.com/<myGitHubAccountName>/<repoName>.git 

Sau đó, bạn có thể đẩy đến bàn ăn của bạn:

git push myfork master 

Nếu bạn không chỉ thực hiện yêu cầu kéo này, bạn có thể xóa điều khiển từ xa origin và đặt tên cho ngã ba là:

git remote rm origin 
git remote add origin https://github.com/<myGitHubAccountName>/<repoName>.git 

Đây thường là những gì tôi làm. Đôi khi tôi thêm nguồn gốc ban đầu là upstream vì vậy tôi vẫn có một tham chiếu đến nó.

+4

Làm thế nào để bạn thực hiện việc này mà không bị nghẹt thở? –

+2

Nếu bạn có quyền truy cập push vào một repo, bạn có thể mở một yêu cầu kéo giữa các nhánh của repo đó. Bạn sẽ cần phải đẩy chi nhánh địa phương của bạn đến một tên chi nhánh mới trên 'origin' - giống như' git push origin HEAD: my-feature'. Sau đó, bạn có thể sử dụng giao diện người dùng web để mở yêu cầu kéo từ 'my-feature' thành' master'. – bobthecow

+0

Làm việc như một sự quyến rũ! –

7

Nếu bạn đồng ý với việc cài đặt một tệp nhị phân khác trong đường dẫn của bạn, github đã phát hành một công cụ nhỏ đẹp gọi là hub.

Nếu bạn đã nhân bản repo của người khác:

$ hub fork # This creates a fork and adds your repo as a remote 

$ git push YOUR_USER feature # push the changes to your new remote 

$ hub pull-request # will open your browser 
Các vấn đề liên quan