Tôi đã tạo một yêu cầu kéo về dự án trên GitHub tới một chi nhánh từ xa cụ thể. Sau một thời gian, nhánh từ xa đã bị xóa.
Làm cách nào để thay đổi yêu cầu kéo để trỏ đến một nhánh khác (cụ thể master
)?
Tôi đã tạo một yêu cầu kéo về dự án trên GitHub tới một chi nhánh từ xa cụ thể. Sau một thời gian, nhánh từ xa đã bị xóa.
Làm cách nào để thay đổi yêu cầu kéo để trỏ đến một nhánh khác (cụ thể master
)?
Câu trả lời:
Bây giờ bạn có thể thay đổi nhánh cơ sở của một yêu cầu kéo mở. Sau khi bạn đã tạo một yêu cầu kéo, bạn có thể sửa đổi nhánh cơ sở để những thay đổi trong yêu cầu kéo được so sánh với một nhánh khác. Bằng cách thay đổi nhánh cơ sở của yêu cầu kéo ban đầu của bạn thay vì mở một nhánh mới với nhánh cơ sở chính xác, bạn sẽ có thể giữ lại các công việc và cuộc thảo luận có giá trị.
Nhấp vào Editnút theo tiêu đề của yêu cầu kéo để hiển thị bộ chọn nhánh cơ sở.
Bạn không thể. Chỉ cần thực hiện một yêu cầu kéo mới.
Mặc dù không có giấy tờ, bạn có thể thực hiện việc này bằng cách sử dụng API GitHub REST.
Việc sử dụng API được giải thích trong câu trả lời này , nhưng về cơ bản bạn có thể đưa ra một yêu cầu REST như sau:
$ curl --user "tom" \
--request PATCH \
--data '{"issue": "15", "head": "tom:new-branch", "base": "master"}' \
https://api.github.com/repos/fred/fabproj/pulls
Điều này sẽ thay đổi yêu cầu kéo được thể hiện trong vấn đề 15 trên fred/fabproj
repo để sử dụng new-branch
nhánh trên tom/fabproj
ngã ba.
Chỉnh sửa: Lưu ý: theo nhận xét, phần trên chỉ để đính kèm một yêu cầu kéo mới vào một vấn đề hiện có .
issue
có giá trị không chính xác, có thể gợi ý rằng bạn không thể thay đổi các yêu cầu kéo đã được khởi tạo nữa. Xấu hổ.
Kể từ ngày 15/08/2016, điều này hiện có thể thực hiện được thông qua Github :
Bây giờ bạn có thể thay đổi nhánh cơ sở của một yêu cầu kéo mở. Sau khi bạn đã tạo một yêu cầu kéo, bạn có thể sửa đổi nhánh cơ sở để những thay đổi trong yêu cầu kéo được so sánh với một nhánh khác. Bằng cách thay đổi nhánh cơ sở của yêu cầu kéo ban đầu của bạn thay vì mở một nhánh mới với nhánh cơ sở chính xác, bạn sẽ có thể giữ lại các công việc và cuộc thảo luận có giá trị.
Tôi có thể thay đổi nhánh mục tiêu. Đúng là chúng tôi không thể chỉnh sửa tên của chi nhánh mục tiêu trong PR. Nhưng mẹo là đổi tên chi nhánh thành một cái gì đó khác và đổi tên chi nhánh mục tiêu của bạn thành chi nhánh hiện tại đã có trong PR.
Ví dụ: PR của tôi có tên như "dev-4.9". Có một nhánh khác được đặt tên là "qa-4.9". Tất cả những gì tôi muốn là "qa-4.9" phải là nhánh mục tiêu PR. Các bước: 1 1) Đổi tên nhánh "dev-4.9" thành một thứ khác "original-dev-4.9"
git checkout dev-4.9
git branch -w original-dev-4.9
git push origin original-dev-4.9
2) Đổi tên nhánh "qa-4.9" thành "dev-4.9".
git checkout qa-4.9
git branch -w dev-4.9
git push origin dev-4.9 -f (force push to write entire branch to reflect dev-4.9)
3) Làm mới url PR và xem các cam kết trong qa-4.9 được phản ánh ở đó.
Thay vì mất tất cả các bình luận được kết nối với một PR cho một nhánh đã bị xóa:
Ví dụ: bạn có PR cho nhánh1, mã này đã bị xóa. Bây giờ bạn muốn hợp nhất để làm chủ và giữ lại các nhận xét về bài PR hiện có của mình:
Điều này hơi hack, nhưng tốt hơn nhiều so với việc hủy bỏ rất nhiều bình luận.
Github hỗ trợ điều này ngay bây giờ. Nút chỉnh sửa ở cuối bên phải của PR.
bạn phải sử dụng github api .
curl --user "your_github_username" \
--request PATCH \
--data '{"title":"newtitle","body":"newbody",...}' \
https://api.github.com/repos/:owner/:repo/pulls/:number
bạn có thể tìm thấy danh sách dữ liệu được tách ra trong tài liệu nhà phát triển github
curl --user "jeremyclement" \
--request PATCH \
--data '{"title":"allows the control of files and folders permissions."}' \
https://api.github.com/repos/Gregwar/Cache/pulls/9
Có vẻ như các trường head/label
và head/ref
không thể chỉnh sửa. Hiện tại, giải pháp duy nhất dường như là của Amber