Entonces tengo un repositorio git que cloné desde una fuente aguas arriba en ghithub. Le hice algunos cambios (que no están comprometidos y en la rama maestra). Lo que quiero hacer es insertar mis cambios en mi página de github como una nueva rama y que github todavía lo vea como una bifurcación.
¿Es eso posible? Soy bastante nuevo en git y github. ¿Mi pregunta tenía sentido?
La forma más fácil en la que puedo pensar (que estoy seguro es la forma más aproximada) es bifurcar el repositorio en github. Clonarlo localmente en un directorio diferente. Agregue el repositorio de origen ascendente. Crea una rama en ese nuevo repositorio bifurcado. Copie mis cambios de código a mano en el nuevo repositorio local. Y luego empujarlo de vuelta a mi github.
¿Es este un caso de uso común que hay una manera más simple de hacerlo sin duplicar directorios?
Supongo que estoy preguntando aquí en lugar de SO ya que estoy en Linux usando la línea de comandos git y la gente aquí da mejores respuestas imo =]
fuente
Respuestas:
Puede hacerlo todo desde su repositorio existente (no es necesario clonar la bifurcación en un nuevo repositorio (local), crear su rama, copiar sus confirmaciones / cambios, etc.).
Prepara tus commits para ser publicados.
Refinar cualquier compromiso local existente (por ejemplo, con
git commit --amend
y / ogit rebase --interactive
).Confirme cualquiera de los cambios no confirmados que desea publicar (no estoy seguro de si quiere decir que tiene algunos compromisos en su maestro local y algunos cambios no confirmados, o simplemente algunos cambios no confirmados; por cierto, los cambios no confirmados no son "en un rama ", están estrictamente en su árbol de trabajo).
Cambie el nombre de su rama maestra para darle el nombre que desea para su "nueva rama". Esto no es estrictamente necesario (puede pasar de una rama a otra), pero probablemente reducirá la confusión a largo plazo si su rama local y la rama en su bifurcación GitHub tienen el mismo nombre.
Bifurca el repositorio GitHub ascendente
(p. Ej.)
github.com:UpstreamOwner/repostory_name.git
Como(p
github.com:YourUser/repository_name.git
. Ej . ) .Esto se hace en el sitio web de GitHub (o un "cliente" que utiliza las API de GitHub), no hay comandos locales de Git involucrados.
En su repositorio local (el que fue clonado originalmente desde el repositorio GitHub ascendente y tiene sus cambios en su maestro ), agregue su repositorio fork como control remoto:
Empuje su rama a su repositorio de fork en GitHub.
Opcionalmente, cambie el nombre de los controles remotos para que su bifurcación se conozca como "origen" y el ascendente como "ascendente".
Una razón para cambiar el nombre de los controles remotos sería porque desea poder usarlos
git push
sin especificar un repositorio (el valor predeterminado es "origen").fuente
-u
opción puede hacer que su sucursal localmy-feature
rastree la misma sucursal remotaorigin/my-feature
. El comando es:git push -u github my-feature
Hay una herramienta:
hub
Ahora usted puede:
fuente