tag - Copiar un repositorio de git sin historial
qué tipos de etiquetas existen en git (4)
Actualmente tengo un repositorio privado en github que quiero hacer público. Sin embargo, algunas de las confirmaciones iniciales contienen información que no quiero hacer pública (credenciales codificadas, etc.).
¿Cuál es la ruta más fácil para hacer público el último commit (realmente no necesito ni quiero los commits anteriores en el repositorio público) sin incluir parte o todo el historial de commit?
Eliminar la carpeta
.git
es
probablemente
la ruta más fácil ya que no quieres / necesitas el historial (como dijo Stephan).
Para que pueda crear un nuevo repositorio desde su último commit: ( ¿Cómo clonar el proyecto seed / kick-start sin toda la historia? )
git clone <git_url>
luego elimine
.git
y luego ejecute
git init
O si desea reutilizar su repositorio actual: ¿ Hacer que la confirmación actual sea la única confirmación (inicial) en un repositorio Git?
Siga los pasos anteriores y luego:
git add .
git commit -m "Initial commit"
Empuje a su repositorio.
git remote add origin <github-uri>
git push -u --force origin master
Puede limitar la profundidad de la historia mientras cloning :
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
Úselo si desea un historial limitado, pero aún algunos.
Use el siguiente comando:
git clone --depth <depth> -b <branch> <repo_url>
Dónde:
-
depth
es la cantidad de confirmaciones que desea incluir. es decir, si solo desea la última confirmación, usegit clone --depth 1
-
branch
es el nombre de la rama remota desde la que desea clonar. es decir, si desea las últimas 3 confirmaciones de la ramamaster
, usegit clone --depth 3 -b master
-
repo_url
es la url de tu repositorio
#!/bin/bash
set -e
# Settings
user=xxx
pass=xxx
dir=xxx
repo_src=xxx
repo_trg=xxx
src_branch=xxx
repo_base_url=https://$user:[email protected]/$user
repo_src_url=$repo_base_url/$repo_src.git
repo_trg_url=$repo_base_url/$repo_trg.git
echo "Clone Source..."
git clone --depth 1 -b $src_branch $repo_src_url $dir
echo "CD"
cd ./$dir
echo "Remove GIT"
rm -rf .git
echo "Init GIT"
git init
git add .
git commit -m "Initial Commit"
git remote add origin $repo_trg_url
echo "Push..."
git push -u origin master