Làm cách nào để yêu cầu một trang wiki trên GitHub?


160

Tôi thấy một trang wiki trên GitHub không mở để chỉnh sửa. Sau đó, tôi rẽ nhánh dự án, chỉnh sửa nó vào "kết thúc của tôi" và cố gắng thực hiện một yêu cầu kéo. Hóa ra, wiki không có trong dự án và không có cách nào để cam kết thay đổi nó.

Khác với e-mail, có cách nào để tiếp tục nếu tôi muốn đề xuất thay đổi trên wiki trong trường hợp này không?

Tại thời điểm này, tôi đã tìm ra thứ giống như là một thay thế trong "Câu hỏi có tiêu đề tương tự", nhưng tôi chưa thể thực hiện yêu cầu kéo với nó, và vì vậy tôi không chắc rằng các mô hình con là một cách tốt cho mục đích này. Bây giờ tôi thấy tôi có thể phân nhánh nó bằng cách nào đó ... Vậy đây có phải là con đường để đi không?



Tôi biết tôi đến bữa tiệc muộn về điều này, nhưng tôi nghĩ rằng sử dụng .wikigit repo như một mô hình con của repo dự án chính có vẻ như là cách tiếp cận tốt nhất cho tình huống này.
ipatch

Giải pháp thay thế để kích hoạt các yêu cầu kéo trên wiki GitHub: growwiththeweb.com/2016/07/iêu
Vadzim

Câu trả lời:


120

GitHub không hỗ trợ các yêu cầu kéo cho kho lưu trữ wiki , chỉ có kho lưu trữ chính (đây là một chút xấu hổ, IMO, nhưng tôi có thể hiểu nó).

Đây là một cách thú vị mà một dự án quản lý các cập nhật cộng đồng cho wiki của họ, trong khi vẫn kiểm soát chặt chẽ, như đối với mã nguồn:

Quy trình đề xuất của tôi là thế này:

  1. Tạo thủ công một nhánh của wiki Taffy trên tài khoản Github của bạn:
    • Tạo một kho lưu trữ mới trên tài khoản github của bạn. Hãy gọi nó là "Taffy-Wiki".
    • Sao chép repo Taffy wiki vào máy cục bộ của bạn ở đâu đó: git clone git@github.com:atuttle/Taffy.wiki.git
    • Xóa từ xa "gốc" ban đầu và thêm repo github của bạn làm "gốc" mới git remote rm origingit remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
  2. Thực hiện các thay đổi được đề xuất của bạn cục bộ, sau đó đẩy chúng vào tài khoản github của bạn: git push -u origin master('-u master master' chỉ yêu cầu lần đầu tiên; sau đó chỉ cần làm git push)
  3. Gửi một vé cho trình theo dõi vấn đề Taffy chính thức yêu cầu tôi xem xét các thay đổi của bạn và hợp nhất chúng vào. Vui lòng đảm bảo bao gồm một liên kết đến repo của bạn và mô tả những gì bạn đã thay đổi.
  4. Đi số 2

(Từ cách bạn có thể đóng góp cho tài liệu Taffy .)

Nếu là tôi, tôi sẽ tạo ra một vấn đề trong kho lưu trữ chính (nghĩa là vấn đề bạn đã rẽ nhánh) gợi ý một bản cập nhật cho wiki. Nếu vấn đề không được kích hoạt, thì email sẽ là lựa chọn duy nhất mà tôi có thể nghĩ ra.


@ Chi-YoungJeffreyLii Những lệnh đó không phải của tôi nhưng đến từ bài đăng trên blog tôi đã trích dẫn (Tôi đã liên kết nguồn bên dưới trích dẫn). Chúng là các lệnh Git dòng lệnh, sẽ hoạt động trên mọi nền tảng với Git, bao gồm cả Windows và bao gồm cả hệ điều hành UNIX hoặc GNU / Linux với trình bao Bash.
Calrion

Nitpick: Trình tự loại bỏ / thêm từ xa gốc có lẽ là một tad (không cần thiết) bị xáo trộn, cộng với "ngã ba" về mặt kỹ thuật không phải là nguồn gốc nên tên bị sai. Tôi đề nghị chỉ thêm một điều khiển từ xa thứ hai vào bản sao cục bộ cho kho lưu trữ GitHub cá nhân mới (ví dụ: "cá nhân") và đẩy nó vào bình thường. Bằng cách đó, người ta vẫn có thể tìm nạp từ kho lưu trữ gốc thực sự thông thường để đồng bộ hóa với công việc của người khác.
tne

5

Tôi đã thực hiện một cách tiếp cận khác, đó là đẩy chính xác cùng một nội dung vào cả repo chính và wiki. Điều này sẽ không phù hợp với thị hiếu của mọi người, nhưng Risk-First chủ yếu là một wiki với một vài trang Jekyll trong repo chính.

Điều này có nghĩa là quá trình yêu cầu kéo / ngã ba hoạt động tốt. Tuy nhiên, sau khi hợp nhất một yêu cầu kéo, tôi phải thực hiện thêm bước kéo đến repo cục bộ của mình và sau đó đẩy sang cả repo chính và wiki, git hỗ trợ tốt với nhiều URL gốc:

localhost:website robmoffat$ git remote show origin
* remote origin
  Fetch URL: git@github.com:risk-first/website.git
  Push  URL: git@github.com:risk-first/website.wiki.git
  Push  URL: git@github.com:risk-first/website.git
  HEAD branch: master

Để đạt được điều này, tôi đã hợp nhất các cam kết từ cả hai repos sau đây:

Làm thế nào để bạn hợp nhất hai kho Git?

Và sau đó đẩy đến cả hai repos như thế này:

Git - Đẩy mã lên hai điều khiển từ xa

Hy vọng điều này sẽ giúp được ai đó.


FYI, tôi theo cách tiếp cận này - nó hoạt động khá tốt. Tuy nhiên, vì những lý do hoàn toàn khác nhau, cuối cùng tôi đã chuyển toàn bộ lô sang Jekyll, vì vậy đây không phải là cách mà trò chơi mạo hiểm hoạt động nữa
Rob Moffat

5

Chúng tôi đã tìm thấy giải pháp tốt nhất cho vấn đề cho đến nay trong https://devonfw.com :

  1. Đặt tài liệu của bạn vào kho git cùng với mã bên trong một thư mục tài liệu.
  2. Mở rộng bản dựng travis-ci của bạn với một số phép thuật thực hiện tất cả các thay đổi từ thư mục tài liệu đó với các phép biến đổi được áp dụng cho wiki git. Xem liên kết ví dụ cuối cùng bên dưới.
  3. Xem xét wiki như xem chỉ đọc trên tài liệu. Xin lưu ý rằng với github.com, bạn vẫn có thể xem và chỉnh sửa trực tiếp các tệp trong thư mục tài liệu. Vì vậy, bạn vẫn có thể sửa lỗi chính tả trong trình duyệt trong vài giây (ngay cả khi PR không có quyền trên repo) - chỉ không qua wiki.
  4. Khi một người đóng góp dĩa, anh ta cũng có tài liệu với mã. Anh ta có thể thay đổi cả hai trong một PR và tất cả đều được xem xét trong cùng một quy trình để sau khi hợp nhất Mã và Tài liệu vẫn đồng bộ. Tuy nhiên, bạn vẫn có UX đẹp hơn để đọc tài liệu trong wiki với thanh bên, v.v.

Vì chúng tôi là 100% OSS, chúng tôi muốn chia sẻ những nỗ lực chăm chỉ của chúng tôi để đi đến giải pháp tuyệt vời này. Dưới đây là các liên kết như ví dụ:


2

Bạn không thể thực hiện một yêu cầu kéo, nhưng bạn có thể mở một vấn đề, dán một liên kết đến trang wiki của bạn và để chúng hợp nhất trong trang wiki của bạn với trang wiki của họ.

Nói ngắn gọn:

Họ chỉ cần sao chép repo trang wiki của bạn, ( git clone YOUR_FORKED_REPO.wiki.git), nén tất cả các wiki của bạn vào một cam kết lớn, sau đó chọn cherry cam kết lớn này vào repo của họ. Điều đó sẽ mang lại tất cả các thay đổi wiki của bạn vào wiki của họ.

Hướng dẫn đầy đủ:

(SAO CHÉP TỪ Github của Larry Botha TẠI ĐÂY: https://gist.github.com/larrybotha/10650410 ):

---------- BẮT ĐẦU SAO CHÉP-PASTE TỪ GITHUB GIST TRÊN ------------

Hợp nhất các thay đổi Wiki từ một Repith Github

Điều này được lấy cảm hứng (hoặc cơ bản được sao chép) từ Cách hợp nhất Github Wiki Thay đổi từ kho này sang kho khác , bởi Roman Ivanov, và phục vụ để đảm bảo rằng nếu có điều gì đó xảy ra với bài viết gốc, thông tin vẫn tốt và an toàn ở đây.

Thuật ngữ

OREPO : repo gốc - repo do chủ sở hữu tạo hoặc duy trì

FREPO : repo rẽ nhánh có lẽ có các bản cập nhật cho wiki của nó, chưa có trên OREPO

Đóng góp

Nếu bạn muốn đóng góp cho wiki của một repo mà bạn đã rẽ nhánh, hãy làm như sau:

  • ngã ba repo
  • chỉ sao chép wiki vào máy của bạn: $ g clone [FREPO].wiki.git
  • thay đổi repo wiki địa phương của bạn
  • đẩy các thay đổi của bạn lên GitHub

Khi bạn đã sẵn sàng để cho tác giả biết bạn có thay đổi, hãy làm như sau:

  • mở một vấn đề trên OREPO
  • cung cấp một liên kết trực tiếp đến repo git wiki của bạn để dễ dàng hợp nhất: tức là [ FREPO ] .wiki.git

Sáp nhập thay đổi

Là chủ sở hữu của OREPO , giờ đây bạn đã nhận được thông báo rằng có các cập nhật cho wiki của bạn trên FREPO của người khác .

Nếu các thay đổi wiki được phân tách từ wiki OREPO mới nhất , bạn có thể thực hiện các thao tác sau:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git

# squashing all FREPO changes
$ git pull [FREPO].wiki.git master

$ git push origin master

Nếu wiki của OREPO đi trước nơi FREPO rẽ nhánh, hãy làm như sau:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git
$ git fetch [FREPO] master:[FREPO-branch]
$ git checkout [FREPO-branch]

#checkout to last OREPO commit
$ git reset --hard [last-OREPO-commit-hash]

# do massive squash of all FREPO changes
$ git merge --squash HEAD@{1}
$ git commit -m "Wiki update from FREPO - [description]"
$ git checkout master

# cherry-pick newly squashed commit
$ git cherry-pick [OREPO-newly-squashed-commit]
$ git push

---------- KẾT THÚC SAO CHÉP-PASTE TỪ GITHUB GIST TRÊN ------------


0

Nếu bạn đồng ý có một tài liệu dài một trang (tôi thực sự thích nó hơn), bạn có thể chiếm quyền điều khiển README.MDvà đặt nội dung của wiki ở đó.

Nó không chỉ được theo dõi như một phần của kho lưu trữ thông thường, nó cũng sẽ được hiển thị trên trang chủ.

Nó có thể được thực hiện để bắt đầu với một tài liệu tham khảo nhanh và sau đó đi vào mô tả / hướng dẫn chi tiết hơn, để người dùng thông thường sẽ đánh vào thông tin chung chung hơn trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.