2013-03-20 43 views
19

Tôi đã thêm này để tập .git/config tôi:Làm cách nào để đẩy yêu cầu kéo trên github?

fetch = +refs/pull/*/head:refs/remotes/origin/pr/* 

nào cho phép tôi để kéo xuống diffs yêu cầu kéo, nhưng khi tôi kiểm tra xem nó ra nó thực sự tạo ra một chi nhánh với điều đó cùng tên. Có cách nào để tôi có thể chuyển sang số pr/2 và thực sự chuyển yêu cầu kéo thay vì chuyển đến chi nhánh mới có tên là pr/2 không?

Trả lời

20

Yêu cầu kéo chỉ là yêu cầu hợp nhất một nhánh cụ thể. Điều này có nghĩa là các cam kết được thực hiện cho chi nhánh sau khi yêu cầu kéo được mở sẽ được bao gồm trong quá trình hợp nhất cuối cùng.

Nếu bạn có quyền truy cập vào nhánh mà yêu cầu kéo yêu cầu hợp nhất, bạn có thể cam kết nhánh đó và yêu cầu kéo sẽ cập nhật với các thay đổi.

Ví dụ:

kéo/3 được đề nghị sáp nhập hotfix vào master

git fetch 
git checkout hotfix 
git pull origin hotfix 

thực hiện thay đổi

git add . 
git commit -m "changes!" 
git push origin hotfix 

Bây giờ bạn cam kết sẽ hiển thị trong các yêu cầu kéo.

+4

Lưu ý rằng kể từ [tháng 9 năm 2016 (bài đăng blog)] (https: // github.com/blog/2247-cải thiện-cộng tác-với-forks), nó bây giờ thậm chí có thể trên Github cho một người duy trì để cam kết một chi nhánh của một yêu cầu kéo trong một ** ngã ba ** của dự án. Xem [trang trợ giúp] (https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork). –

0

Câu hỏi hay. Nhưng tôi sẽ ngạc nhiên nếu bạn có thể:

$ cat .git/refs/pull/upstream/839 
f8a9f492098e154b4a8258a941af47c9ca017ada 

Thậm chí nếu bạn bằng cách nào đó có thể thay đổi tham chiếu đó theo những gì bạn thích, github có siêu dữ liệu khác mà bạn không thể dễ dàng thay đổi. Vì vậy, tốt hơn đẩy để kéo chi nhánh đã được tạo ra từ.

Xem wrapper github dòng lệnh cho sự tương tác github dễ dàng hơn từ dòng lệnh: https://hub.github.com/

0

Các GitHub Desktop client sẽ tạo ra một yêu cầu kéo (PR) trong đó bao gồm PR gốc và thay đổi của bạn nếu bạn cố gắng để nhập các thay đổi cho một PR bạn đã kiểm tra.

Tôi đã thực hiện điều này khỏi nhánh chính nhưng có lẽ bạn có thể tạo một nhánh khác và sau đó tạo yêu cầu kéo đến yêu cầu kéo. Đó là tất cả các phép thuật với tôi mặc dù với những Git GUIs ưa thích.

4

đây của là GitHub của "sáp nhập thông qua dòng lệnh" hướng dẫn cho các yêu cầu kéo (Tôi fulldecent, anh chàng kia là ospr):

Bước 1: Từ kho dự án của bạn, hãy kiểm tra một chi nhánh mới và kiểm tra những thay đổi .

git checkout -b ospr-image-rendering master 
git pull https://github.com/ospr/FDWaveformView.git image-rendering 

Bước 2: Hợp nhất các thay đổi và cập nhật trên GitHub.

git checkout master 
git merge --no-ff ospr-image-rendering 
git push origin master 

Đây là bước bổ sung mà sẽ gửi những thay đổi của bạn trở lại thượng nguồn (?) Để người khởi tạo PR.

git push https://github.com/ospr/FDWaveformView.git ospr-image-rendering:image-rendering 
+2

Cảm ơn, chính xác những gì tôi đang tìm kiếm. Lưu ý rằng bạn có thể bỏ qua/trì hoãn bước 2 (sáp nhập vào chủ của bạn) và chỉ cần đẩy các thay đổi cục bộ của bạn trực tiếp vào PR với bước thứ ba của bạn. Dạng chung là 'git push : '. – medmunds

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