J'ai actuellement un dépôt privé sur github que je veux rendre public. Cependant, certains des commits initiaux contiennent des informations que je ne souhaite pas rendre publiques (informations d'identification codées en dur, etc.).
Quel est le moyen le plus facile de rendre public le dernier commit (je n'ai pas vraiment besoin ou ne veux pas que les précédents soient validés dans le référentiel public) sans inclure tout ou partie de l'historique des commit?
Vous pouvez limiter la profondeur de l’historique avec clonage :
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
Utilisez ceci si vous voulez un historique limité, mais quand même.
Utilisez la commande suivante:
git clone --depth <depth> -b <branch> <repo_url>
Où:
depth
est le nombre de commits que vous souhaitez inclure. c'est-à-dire si vous voulez seulement utiliser la dernière validation, utilisez git clone --depth 1
branch
est le nom de la branche distante à partir de laquelle vous voulez cloner. c'est-à-dire si vous voulez les 3 derniers commits de la branche master
, utilisez git clone --depth 3 -b master
repo_url
est l'URL de votre dépôtLa suppression du dossier .git
est probablement le chemin le plus simple puisque vous ne voulez pas/n’avez pas besoin de l’historique (comme l’a dit Stephan).
Ainsi, vous pouvez créer un nouveau dépôt à partir de votre dernier commit: ( Comment cloner un projet seed/kick-start sans l'historique complet? )
git clone <git_url>
puis supprimez .git
et exécutez ensuite
git init
Ou si vous souhaitez réutiliser votre référentiel actuel: Faites-vous le commit actuel comme seul commit (initial) dans un référentiel Git?
Suivez les étapes ci-dessus puis:
git add .
git commit -m "Initial commit"
Poussez à votre repo.
git remote add Origin <github-uri>
git Push -u --force Origin master
#!/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