Làm cách nào để tạo và / hoặc gửi yêu cầu kéo đến kho lưu trữ khác được lưu trữ trên GitHub?
Làm cách nào để tạo và / hoặc gửi yêu cầu kéo đến kho lưu trữ khác được lưu trữ trên GitHub?
Câu trả lời:
(Ngoài "Trang trợ giúp GitHub chính thức 'Sử dụng trang yêu cầu kéo ",
xem thêm " Ngã ba so với phân nhánh trong GitHub ", " Sự khác biệt giữa nguồn gốc và ngược dòng trong GitHub ")
Giả sử rằng bạn đã rẽ nhánh lần đầu tiên , đây là những gì bạn nên làm trong ngã ba mà bạn sở hữu:
master
, nơi bạn có thể bị cám dỗ tích lũy và trộn một vài sửa đổi cùng một lúc.origin/master
(đảm bảo bản vá của bạn vẫn hoạt động) sẽ tự động cập nhật yêu cầu kéo (không cần phải nhấp vào bất cứ thứ gì)git remote prune origin
). GUI GitHub sẽ đề xuất cho bạn xóa chi nhánh trong trang yêu cầu kéo.Lưu ý: để tự viết Yêu cầu kéo, hãy xem " Cách viết yêu cầu kéo hoàn hảo " (Tháng 1 năm 2015, GitHub)
Tháng 3 năm 2016: Tùy chọn nút hợp nhất PR mới: xem " Github squash cam kết từ giao diện web theo yêu cầu kéo sau khi xem xét nhận xét? ".
Người duy trì repo có thể chọn merge --squash
những cam kết PR đó.
Về điểm cuối cùng, kể từ tháng 4, 10 năm 2013, " Nút hợp nhất được thiết kế lại ", chi nhánh sẽ bị xóa cho bạn:
Xóa các nhánh sau khi bạn hợp nhất cũng đã được đơn giản hóa.
Thay vì xác nhận xóa bằng một bước bổ sung, chúng tôi ngay lập tức xóa chi nhánh khi bạn xóa nó và cung cấp một liên kết thuận tiện để khôi phục chi nhánh trong trường hợp bạn cần lại .
Điều đó xác nhận thực tiễn tốt nhất để xóa chi nhánh sau khi hợp nhất một yêu cầu kéo.
kéo yêu cầu không phải là một thuật ngữ "git" chính thức.
Git sử dụng lệnh request-pull
(!) Để xây dựng yêu cầu hợp nhất:
Nó "tóm tắt các thay đổi giữa hai cam kết với đầu ra tiêu chuẩn và bao gồm URL đã cho trong tóm tắt được tạo."
Github ra mắt phiên bản của riêng mình kể từ ngày đầu tiên (tháng 2 năm 2008) , nhưng đã thiết kế lại tính năng đó vào tháng 5 năm 2010 , nói rằng:
Pull Request = Compare View + Issues + Commit comments
<humour>
Điều đó (yêu cầu kéo) thậm chí không được xác định đúng bởi GitHub!
May mắn thay, một tổ chức tin tức kinh doanh thực sự sẽ biết và có một lưu ý điện tử để thay thế pull-thay thế bằng 'e-note' :
Vì vậy, nếu repos o tory của bạn cần một ghi chú điện tử ... hãy hỏi Fox Business . Họ đang biết.
</humour>
branch
so với master
quyết định có vẻ như một quan trọng dành / Github của câu trả lời của tôi từ một giải pháp lý thuyết để một cái gì đó mà chúng ta thực sự sẽ sử dụng.
git pull --rebase upstream/master
thực sự ổn.
Để tìm hiểu cách thực hiện yêu cầu kéo, tôi chỉ cần theo dõi hai trang trợ giúp riêng biệt trên Github (được liên kết bên dưới dưới dạng dấu đầu dòng). Các lệnh dòng lệnh sau đây dành cho Phần 1 . Phần 2 , yêu cầu kéo thực tế, được thực hiện hoàn toàn trên trang web của Github.
$ git clone https://github.com/tim-peterson/dwolla-php.git
$ cd dwolla-php
$ git remote add upstream https://github.com/Dwolla/dwolla-php.git
$ git fetch upstream
// make your changes to this newly cloned, local repo
$ git add .
$ git commit -m '1st commit to dwolla'
$ git push origin master
Phần 1 : fork repo của ai đó: https://help.github.com/articles/fork-a-repo
git clone->cd dwolla-php->git remote->git fetch
chuỗi ở trên để sao chép ngã ba của bạn ở đâu đó trong máy tính của bạn (nghĩa là "sao chép / dán" nó vào, trong trường hợp này third_party TimPeterson$
:) và đồng bộ hóa nó với repo chính (Dwolla / dwolla-php)git add->git commit->git push
chuỗi ở trên để đẩy các thay đổi của bạn sang repo từ xa, nghĩa là ngã ba của bạn trên Github (tim-peterson / dwolla-php)Phần 2 : thực hiện yêu cầu kéo: https://help.github.com/articles/USE-pull-requests
Tims-MacBook-Pro:third_party TimPeterson$
bởi vì đây là hướng dẫn dành cho người mới bắt đầu và những lời nhắc đó giúp định hướng người dùng.
git fetch upstream
, bạn không cần hợp nhất các thay đổi ngược dòng với bản sao cục bộ của mình, git checkout master
sau đó sử dụng git merge upstream/master
?
Để thực hiện yêu cầu kéo, bạn cần thực hiện các bước sau:
Tôi phải mất một thời gian để tìm ra điều này, hy vọng điều này sẽ giúp được ai đó.
Tôi đã bắt đầu một dự án để giúp mọi người thực hiện yêu cầu kéo GitHub đầu tiên của họ. Bạn có thể thực hiện hướng dẫn thực hành để thực hiện PR đầu tiên của mình tại đây
Quy trình làm việc đơn giản như
git clone <clone url you copied earlier>
git checkout -b branch-name
git commit
git push origin branch-name
Compare and pull request
nútĐối với những người trong chúng tôi có tài khoản github.com, nhưng chỉ nhận được thông báo lỗi khó chịu khi chúng tôi nhập "git" vào dòng lệnh, đây là cách thực hiện tất cả trong trình duyệt của bạn :)
Tôi đã làm theo hướng dẫn của peterson nhưng tôi đã tạo một chi nhánh địa phương cho những thay đổi của mình. Tuy nhiên, sau khi đẩy tôi không thấy chi nhánh mới trong GitHub. Giải pháp là thêm -u vào lệnh đẩy:
git push -u origin <branch>
tim-peterson
lần thứ 2Dwolla
Tôi đã viết một chương trình bash thực hiện tất cả công việc thiết lập một nhánh PR cho bạn. Nó thực hiện chuyển đổi nếu cần thiết, đồng bộ hóa với dòng ngược, thiết lập điều khiển từ xa ngược dòng, v.v. và bạn chỉ cần thực hiện các sửa đổi của mình, đẩy và gửi PR.
Đây là cách bạn chạy nó:
github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature
Bạn sẽ tìm thấy chương trình ở đây và kho lưu trữ của nó cũng bao gồm hướng dẫn từng bước để thực hiện quy trình tương tự theo cách thủ công nếu bạn muốn hiểu cách thức hoạt động của nó và cũng có thêm thông tin về cách giữ cho nhánh tính năng của bạn cập nhật ngày với chủ thượng nguồn và các mẩu tin hữu ích khác.
Các đơn giản nhất GitHub Kéo Yêu cầu là từ giao diện web mà không cần sử dụng git.
Nhấp vào biểu tượng bút chì ,
tìm kiếm văn bản gần vị trí, thực hiện bất kỳ chỉnh sửa nào bạn muốn sau đó xem trước chúng để xác nhận. Đưa ra thay đổi được đề xuất mô tả tối đa 50 ký tự và tùy chọn mô tả mở rộng sau đó nhấp vào nút Thay đổi tệp đề xuất .
Nếu bạn đang đọc này, bạn sẽ không có quyền ghi vào kho lưu trữ (thư mục dự án), vì vậy GitHub sẽ tạo một bản sao của kho lưu trữ (thực sự là một nhánh) trong tài khoản của bạn. Nhấp vào nút Tạo yêu cầu kéo .