GitHub: haz de fork un "proyecto propio"

118

Encontré un buen proyecto de GitHub que extendí mucho. Creo que mis cambios son buenos, porque están funcionando. Pero parece que el autor original no ha tenido tiempo de revisar estos cambios e incluirlos. De hecho, incluso es posible que las características que necesito e implementé no estén en la visión del autor original y simplemente apuntemos a diferentes objetivos. No lo sé porque nunca recibí respuestas de él.

Dicho esto, vi que mis contribuciones no se cuentan en mi mapa de compromiso. Este es el caso siempre que el repositorio original no acepte mis contribuciones. Además, mi trabajo solo se reconoce como trabajo y no atrae a otras personas con la misma visión que yo. Este es el mayor problema para mí, porque veo que mucha gente solicita estas funciones.

Todavía estoy ofreciendo mis contribuciones al proyecto original, pero veo que es poco probable que alguna vez sean aceptadas. Ahora me gustaría hacer de mi fork un "proyecto real". Si bien planeo sincronizarme con el proyecto original en algunos momentos, quiero cambiarle el nombre y motivar a las personas a contribuir a mi proyecto también. Además, me encantaría que GitHub mostrara que este proyecto se mantiene activamente (hablando del mapa de confirmación). Y finalmente, me encantaría hacer los lanzamientos adecuados.

¿Cómo puedo hacer esto y bueno, hacer de mi bifurcación un proyecto completo?

cristiano
fuente
Estoy confundido, tal vez las cosas hayan cambiado desde 2014, pero mi proyecto TightBlog aparece como una bifurcación de Apache Roller en la esquina superior izquierda: github.com/gmazza/tightblog , pero recibo todo el crédito por todos mis problemas. , PR, etc., aunque no se aplica ningún trabajo al proyecto principal de Apache Roller, sino solo a mi bifurcación: ( github.com/gmazza?tab=overview&period=monthly ). Ya no estoy seguro de lo que se gana al hacer de una bifurcación un proyecto independiente.
Glen Mazza

Respuestas:

75

Para desconectar la bifurcación y convertirla en un repositorio independiente en GitHub, comuníquese con el soporte de GitHub .

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

Oleh Prypin
fuente
9
Además, hacer esto mantendrá a los observadores de estrellas, los observadores y la red de horquillas. A diferencia de la creación de un nuevo repositorio desde cero.
Johnco
1
Vale la pena señalar que el soporte de GitHub me dio la opción de volver a hacer referencia a las bifurcaciones secundarias o mantenerlas adjuntas a mi propio repositorio.
gmarmstrong
41

Para hacer esto, necesita duplicar el repositorio . La versión corta es:

  1. Crea un nuevo repositorio en GitHub.
  2. Clone el repositorio bifurcado que desea separar de su padre.
  3. Empuje todas las ramas de este clon a su nuevo repositorio.
cdhowie
fuente
Si desea que su repositorio siga teniendo el mismo nombre, probablemente pueda clonar su repositorio, eliminarlo en GitHub, crear un nuevo proyecto con el mismo nombre y enviar todo.
Rory O'Kane
12
Parece que las solicitudes de extracción de GitHub solo pueden estar en las bifurcaciones de GitHub de un proyecto. Entonces, si duplica su repositorio, no puede realizar solicitudes de extracción desde el nuevo repositorio. Y si elimina y reemplaza su antiguo repositorio, todas sus solicitudes de extracción existentes probablemente se cerrarán porque GitHub pensará que el código se eliminó y no podrá realizar nuevas solicitudes de extracción.
Rory O'Kane
9
Votar en contra, ya que puede inducir a error a las personas a realizar acciones innecesarias. En su lugar, debería aceptarse la respuesta de Oleh: el camino a seguir es ponerse en contacto con el soporte de GitHub. Me tomó menos de una hora convertir mi bifurcación en un repositorio independiente.
Georgii Ivankin
5

Esto es muy fácil:

  1. Clone el repositorio en alguna parte: git clone [email protected]:USERNAME/REPOSITORY.git(asegúrese de tenerlo clonado)
  2. Elimina el repositorio en GitHub (Configuración> Opciones> Eliminar este repositorio)
  3. Crea un nuevo repositorio en blanco en GitHub
  4. git remote set-url origin [email protected]:USERNAME/NEW_REPOSITORY.git(si usó el mismo nombre para el repositorio, entonces NEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(Yo uso ssh, pero si usas https, tus URL de github se verán así https://github.com/USERNAME/REPOSITORY.git)

Gerbus
fuente
1

Primero debe verificar si la licencia le permite hacerlo, en general, Open Source lo obliga a hacerlo porque se trata de la evolución del software sin cadenas. Si es así, simplemente cree un nuevo repositorio. No olvide dar crédito a los autores originales y comenzar su proyecto.

jethroo
fuente
3
Tiene licencia del MIT y sí, planeo dar créditos como de costumbre. De hecho, hubiera preferido que el autor original simplemente hubiera aceptado mi código (o me hubiera dicho por qué no lo hace)
Christian
1
Si la licencia no le permite crear un repositorio que no sea una bifurcación de GitHub del original, entonces el proyecto no debería ser un proyecto público de GitHub en primer lugar, ya que se supone que los proyectos públicos se publican bajo una licencia de código abierto. . No puedo pensar en ninguna licencia de código abierto que no permita hacer copias de código. Ese es el objetivo del código abierto. (Por supuesto, puede haber requisitos de atribución, pero estos pueden satisfacerse sin que un proyecto sea una bifurcación de GitHub "adecuada".)
cdhowie
El autor ciertamente debería hacer que su proyecto sea software gratuito, pero si no lo hace (por ejemplo, si no hay licencia), entonces el proyecto no es gratuito: stackoverflow.com/a/16934573/6791398
gmarmstrong