Tuve un problema similar en el que olvidé bifurcar un repositorio en mi github y agregué varias confirmaciones antes de darme cuenta de mi error.
Encontré una solución bastante simple.
Primero quite el control remoto al repositorio original
git remote remove origin
Segundo, agregue un control remoto a la nueva bifurcación en mi github
git remote add origin <my repo URL>
Luego presioné a origin master y todas mis confirmaciones aparecieron en mi github.
¿Hay alguna manera de obtener las confirmaciones en un nuevo repositorio (esta vez la primera confirmación es el archivo de LICENCIA) y aún así conservar la metainformación de la confirmación?
Sí, agregando un control remoto y seleccionando las confirmaciones además de tu primera confirmación.
# add the old repo as a remote repository
git remote add oldrepo https://github.com/path/to/oldrepo
# get the old repo commits
git remote update
# examine the whole tree
git log --all --oneline --graph --decorate
# copy (cherry-pick) the commits from the old repo into your new local one
git cherry-pick sha-of-commit-one
git cherry-pick sha-of-commit-two
git cherry-pick sha-of-commit-three
# check your local repo is correct
git log
# send your new tree (repo state) to github
git push origin master
# remove the now-unneeded reference to oldrepo
git remote remove oldrepo
El resto de esta respuesta es si aún desea agregar la LICENCIA a su repositorio anterior.
Sí. Puede colocar su confirmación de LICENCIA como la primera confirmación al cambiar la base.
Rebasar es una forma genial de reorganizar el orden de las confirmaciones manteniendo intactos todos los autores de las confirmaciones y las fechas de las confirmaciones.
Cuando se trabaja en un repositorio compartido, generalmente se desaconseja a menos que todo su equipo sea fluido en git. Para aquellos que no lo son, simplemente pueden clonar una copia nueva del repositorio.
Así es como obtienes tu confirmación de LICENCIA como la primera confirmación.
1. Actualiza y reorganiza tu copia local
Echa un vistazo a tu proyecto y coloca el archivo de LICENCIA en una confirmación ENCIMA de tu pila actual de 3 confirmaciones.
#create LICENSE file, edit, add content, save
git add LICENSE
git commit -m 'Initial commit'
Luego haga una reorganización interactiva en la rama principal para REORDENAR las confirmaciones.
git rebase -i --root
Se abrirá un editor. Mueva la línea inferior (su confirmación de "confirmación inicial", la confirmación más reciente) a la parte superior del archivo. Luego guarde y salga del editor.
Tan pronto como salgas del editor, git escribirá las confirmaciones en el orden que acabas de especificar.
Ahora tiene su copia local del repositorio actualizada. hacer:
git log
para verificar.
2. Fuerce el envío de su nuevo estado de repositorio a github
Ahora que su copia está actualizada, debe forzar la inserción en github.
git push -f origin master
Esto le indicará a github que mueva la rama maestra a su nueva ubicación. Solo debe forzar la inserción en raras ocasiones como esta, en las que todos los que trabajan con ella conocen el cambio pendiente; de lo contrario, confundirá a sus colaboradores.
3. Sincronizar colaboradores con github
Por último, todos los colaboradores deberán sincronizarse con este repositorio.
Primero deben tener repositorios limpios ya que el siguiente comando puede ser destructivo si hay cambios sin guardar.
# make sure there are no unsaved changes
git status
# pull the latest version from github
git fetch
# move their master branch pointer to the one you published to github.
git reset --hard origin/master
Eso es todo. Todo el mundo debería estar sincronizado ahora.