Organice un repository de origen por separado

Necesito usar un project A público project A en GitHub en mi proyecto, con algunas modificaciones que no puedo registrar en GitHub y estropear el trabajo del autor original, pero sí tengo que desplegar las actualizaciones del autor en mi empresa.

Me pregunto cómo puedo alojar un repository satelital de Git en mi compañía mientras lo mantengo como nuestro propio origen y recibo actualizaciones del origen real.

Considere el uso de submodules de Git

La pregunta es un poco confusa, pero parece que podría tener su propio repository de Git, pero desea include un repository de Git de terceros en su código como biblioteca. Una opción que tienes es usar Submodules de Git . Nunca he usado uno de estos antes, así que tendrás que leer sobre cómo funcionan.

También he escuchado que otra opción es el git subtree , pero esto también es algo que nunca he usado antes, y tampoco está documentado actualmente en la documentation principal de Git . Puede get más información sobre el subtree de Alternatives To Git Submodule: Git Subtree .


Respuesta anterior, pero aún tiene información útil

Agregar repo upstream como control remoto

La pregunta es un poco confusa, pero parece que básicamente solo quieres hacer que una bifurcación de empresa de un proyecto en GitHub actúe como tu origen, pero aún así quieres get confirmaciones del repository original. El término que GitHub utiliza para el repository de origen remoto original es el repository en upstream , que puede agregar como otro control remoto a cualquier clon:

 git remote add upstream <url-of-original-repo> 

A continuación, solo busque los cambios desde la cadena ascendente y combínelos con sus confirmaciones de origen, o rebase su trabajo en la parte superior, o cualquier otra cosa que quiera hacer:

 git fetch upstream git checkout -b master origin/master git merge upstream/master git push origin master 

Como dice la página de ayuda de GitHub, "Fork a Repo" (énfasis mío):

Cuando se clona un repository, tiene un origen llamado remoto pnetworkingeterminado que apunta a su fork en GitHub, no al repository original desde el cual fue bifurcado. Para realizar un seguimiento del repository original, debe agregar otro control remoto denominado upstream :

 cd Spoon-Knife git remote add upstream https://github.com/octocat/Spoon-Knife.git git fetch upstream 

Si el repository original del que ha bifurcado su proyecto se actualiza, puede agregar esas actualizaciones a su fork ejecutando el siguiente código :

 # Fetches any new changes from the original repository git fetch upstream # Merges any changes fetched into your working files git merge upstream/master 

git remote add myremote ssh@your.githost.com/repo agregará un nuevo repository de origen.

Dependiendo de la licencia, sin embargo, probablemente no sea legal modificar la fuente de uso en su empresa sin proporcionar la fuente modificada en un lugar público. Si la licencia para el repository de GitHub, su clonación es GPL, etc., su mejor opción es simplemente dividir el proyecto en GitHub.