GitHub: biến fork thành một “dự án của riêng mình”


118

Tôi đã tìm thấy một dự án GitHub tốt đẹp mà tôi đã mở rộng rất nhiều. Tôi tin rằng những thay đổi của tôi là tốt, vì chúng đang phát huy tác dụng. Nhưng có vẻ như tác giả gốc không có thời gian để xem xét những thay đổi này và bao gồm chúng. Trên thực tế, thậm chí có thể các tính năng tôi cần và triển khai không nằm trong tầm nhìn của tác giả ban đầu và chúng tôi chỉ đơn giản là hướng đến các mục tiêu khác nhau. Tôi không biết vì tôi chưa bao giờ nhận được phản hồi từ anh ấy.

Điều đó nói rằng tôi đã thấy những đóng góp của mình không được tính trong bản đồ cam kết của tôi. Đây là trường hợp miễn là kho lưu trữ ban đầu không chấp nhận đóng góp của tôi. Hơn nữa, công việc của tôi chỉ được công nhận là công việc và không thu hút bất kỳ người nào khác có cùng tầm nhìn với tôi. Đây là vấn đề lớn hơn đối với tôi, vì tôi thấy rất nhiều người yêu cầu các tính năng này.

Tôi vẫn đang đưa ra những đóng góp của mình cho dự án ban đầu, nhưng tôi thấy chưa chắc chúng đã được chấp nhận. Bây giờ tôi muốn biến fork của mình thành một "dự án thực sự". Mặc dù tôi có kế hoạch đồng bộ hóa với dự án ban đầu vào một số thời điểm, tôi muốn đổi tên nó và thúc đẩy mọi người đóng góp cho dự án của tôi. Ngoài ra, tôi rất thích nếu GitHub cho thấy rằng dự án này đang được duy trì tích cực (nói về bản đồ cam kết). Và cuối cùng, tôi rất muốn phát hành nó.

Làm cách nào để hoàn thành việc này và biến fork của tôi thành một dự án chính thức?


Tôi bối rối, có lẽ mọi thứ đã thay đổi kể từ năm 2014, nhưng dự án TightBlog của tôi được liệt kê là một nhánh của Apache Roller ở góc trên bên trái: github.com/gmazza/tightblog , nhưng tôi vẫn nhận được đầy đủ tín dụng cho tất cả các vấn đề của mình , PR, v.v., mặc dù không có công việc nào được áp dụng cho dự án chính của Apache Roller mà chỉ cho fork của tôi: ( github.com/gmazza?tab=overview&period=monthly ). Tôi không chắc người ta thu được gì khi biến fork thành một dự án độc lập nữa.
Glen Mazza

Câu trả lời:


75

Để tách fork và biến nó thành một kho lưu trữ độc lập trên GitHub, hãy liên hệ với bộ phận hỗ trợ của GitHub .

https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/#commit-was-made-in-a-fork


9
Ngoài ra, làm điều này sẽ giữ chân người ngắm sao, người theo dõi và mạng lưới các ngã ba. Không giống như tạo một repo mới từ đầu.
Johnco

1
Điều đáng chú ý là Bộ phận hỗ trợ GitHub đã cho tôi lựa chọn các fork dành cho con cái hoặc giữ chúng gắn liền với kho lưu trữ của riêng tôi.
gmarmstrong

41

Để làm được điều này, bạn cần nhân bản kho lưu trữ . Phiên bản ngắn gọn là:

  1. Tạo một kho lưu trữ mới trên GitHub.
  2. Sao chép kho lưu trữ được phân nhánh mà bạn muốn tách khỏi kho lưu trữ gốc của nó.
  3. Đẩy tất cả các nhánh trong bản sao này vào kho lưu trữ mới của bạn.

Nếu bạn muốn kho lưu trữ của mình vẫn có cùng tên, bạn có thể sao chép kho lưu trữ của mình, xóa nó trên GitHub, tạo một dự án mới có cùng tên và đẩy mọi thứ.
Rory O'Kane

12
Có vẻ như các yêu cầu kéo GitHub chỉ có thể qua các nhánh GitHub của một dự án. Vì vậy, nếu bạn nhân bản kho lưu trữ của mình, bạn không thể thực hiện các yêu cầu kéo từ kho lưu trữ mới. Và nếu bạn xóa và thay thế kho lưu trữ cũ của mình, tất cả các yêu cầu kéo hiện tại của bạn có thể sẽ bị đóng vì GitHub sẽ nghĩ rằng mã đã bị xóa và bạn sẽ không thể thực hiện các yêu cầu kéo mới.
Rory O'Kane

9
Từ chối vì điều này có thể đánh lừa mọi người thực hiện các hành động không cần thiết. Thay vào đó, câu trả lời của Oleh nên được chấp nhận: cách thực hiện là liên hệ với bộ phận hỗ trợ của GitHub. Mất chưa đến một giờ để chuyển đổi fork của tôi thành một repo độc lập.
Georgii Ivankin

5

Điều này rất dễ dàng:

  1. Sao chép repo ở đâu đó: git clone git@github.com:USERNAME/REPOSITORY.git(đảm bảo bạn đã nhân bản nó)
  2. Xóa kho trong GitHub (Cài đặt> Tùy chọn> Xóa kho này)
  3. Tạo repo trống mới trong GitHub
  4. git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git(nếu bạn sử dụng cùng một tên cho repo, thì NEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(Tôi sử dụng ssh, nhưng nếu bạn sử dụng https, url github của bạn sẽ trông như thế nào https://github.com/USERNAME/REPOSITORY.git)


1

Trước tiên, bạn nên kiểm tra xem giấy phép có cho phép bạn làm như vậy hay không, nói chung Mã nguồn mở buộc bạn phải làm như vậy bởi vì tất cả là về chuỗi phát triển phần mềm. Nếu vậy thì chỉ cần tạo một repo mới. Đừng quên ghi công các tác giả gốc và bắt đầu dự án của bạn.


3
Đó là MIT được cấp phép và vâng, tôi dự định cung cấp các khoản tín dụng như bình thường. Trên thực tế, tôi sẽ thích nếu tác giả gốc chấp nhận mã của tôi (hoặc cho tôi biết tại sao anh ta không chấp nhận)
Christian

1
Nếu giấy phép không cho phép bạn tạo một kho lưu trữ không phải là GitHub fork của bản gốc, thì ngay từ đầu, dự án sẽ không phải là một dự án GitHub công khai, vì các dự án công cộng phải được phát hành theo giấy phép nguồn mở . Tôi không thể nghĩ ra bất kỳ giấy phép nguồn mở nào không cho phép tạo bản sao mã. Đó là toàn bộ điểm của mã nguồn mở. (Tất nhiên, có thể có các yêu cầu phân bổ - nhưng những yêu cầu này có thể được đáp ứng mà không cần dự án là một nhánh GitHub "thích hợp".)
cdhowie

Tác giả chắc chắn sẽ làm cho dự án phần mềm miễn phí của họ, nhưng nếu họ không (ví dụ, nếu không có giấy phép), sau đó dự án là không tự do: stackoverflow.com/a/16934573/6791398
gmarmstrong
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.