¿Hay alguna forma de obtener las confirmaciones en un nuevo repositorio (esta vez, la primera confirmación es el archivo LICENCIA) y aún así mantener la metainformación de la confirmación?
Sí, agregando un control remoto y seleccionando las confirmaciones además de su 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.
Si. Puede colocar su confirmación de LICENCIA como la primera confirmación cambiando la base.
Rebasing es una forma de git de reorganizar el orden de las confirmaciones mientras se mantienen 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 están, pueden simplemente clonar una copia nueva del repositorio.
Así es como obtiene su confirmación de LICENCIA como la primera confirmación.
1. Actualice y reajuste su copia local
Consulte su proyecto y coloque el archivo LICENCIA en una confirmación EN LA PARTE SUPERIOR de su pila de 3 confirmaciones actual.
#create LICENSE file, edit, add content, save
git add LICENSE
git commit -m 'Initial commit'
Luego haga una rebase interactiva en la rama maestra para REORDENAR las confirmaciones.
git rebase -i --root
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 salga del editor, git escribirá las confirmaciones en el orden que acaba de especificar.
Ahora tiene su copia local del repositorio actualizada. hacer:
git log
para verificar.
2. Forzar el envío de su nuevo estado de repositorio a github
Ahora que su copia está actualizada, debe forzar la inserción a github.
git push -f origin master
Esto le dirá a github que mueva la rama maestra a su nueva ubicación. Solo debe forzar el impulso en raras ocasiones como esta, en las que todos los que trabajan con él están al tanto del 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 el mundo debería estar sincronizado ahora.