現在、githubに公開したいプライベートリポジトリがあります。ただし、初期コミットの一部には、公開したくない情報が含まれています(ハードコードされたcrentialsなど)。
コミット履歴の一部またはすべてを含めずに、最新のコミットをパブリックにする(パブリックリポジトリに以前のコミットを実際に必要としない、または必要としない)最も簡単な方法は何ですか?
クローニング の間に、履歴の深さを制限できます。
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
限られた履歴が必要な場合はこれを使用しますが、それでもいくつか使用します。
次のコマンドを使用します。
git clone --depth <depth> -b <branch> <repo_url>
どこで:
depth
は、含めるコミットの量です。つまり、最新のコミットが必要な場合はgit clone --depth 1
を使用しますbranch
は、クローンを作成するリモートブランチの名前です。つまり、master
ブランチからの最後の3つのコミットが必要な場合は、git clone --depth 3 -b master
を使用しますrepo_url
はリポジトリのURLです#!/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
.git
フォルダーを削除することは、おそらく履歴を必要としない/必要としないので(Stephanが言ったように)最も簡単なパスです。
したがって、最新のコミットから新しいリポジトリを作成できます:( 履歴なしでシード/キックスタートプロジェクトをクローンする方法? )
git clone <git_url>
その後、.git
を削除し、その後実行します
git init
または、現在のレポを再利用したい場合:Gitリポジトリで現在のコミットを唯一の(初期)コミットにしますか?
上記の手順に従ってください:
git add .
git commit -m "Initial commit"
リポジトリにプッシュします。
git remote add Origin <github-uri>
git Push -u --force Origin master