Gitクローンしたリポジトリの削除方法完全ガイド|ローカル・リモート・接続の削除まで

git

「間違った場所にgit cloneしてしまった…」「もう使わないリポジトリを削除したい」「ディスク容量がいっぱいで古いプロジェクトを消したい」こんな時、どうやって削除すればいいか迷っていませんか?

実は、Gitのリポジトリ削除は3つのパターンがあり、それぞれやり方が全く異なります。間違った方法で削除すると、大切なデータを失ったり、チーム全体に影響を与えたりする危険性があります。

この記事では、Gitでクローンしたリポジトリを安全に削除する方法を、初心者でも分かるように徹底解説します。Windows・Mac・LinuxすべてのOS、コマンドとGUIの両方の方法、そして削除前に必ず確認すべきチェックリストまで完全網羅します。

スポンサーリンク
  1. 削除の3つのパターン:あなたが削除したいのはどれ?
    1. パターン1:ローカルリポジトリの削除(最も一般的)
    2. パターン2:Git管理だけを解除(フォルダは残す)
    3. パターン3:リモートリポジトリの削除(超危険!)
  2. 【重要】削除前の必須チェックリスト
    1. チェック1:コミットしていない変更がないか確認
    2. チェック2:pushしていないコミットがないか確認
    3. チェック3:リモートリポジトリの状態を確認
    4. チェック4:大切なブランチがないか確認
    5. チェック5:未保存のスタッシュがないか確認
  3. パターン1:ローカルリポジトリの削除方法
    1. 方法1-A:コマンドで削除(推奨)
    2. 方法1-B:GUI(エクスプローラー・Finder)で削除
    3. 方法1-C:GitクライアントGUIで削除
    4. 削除の確認方法
  4. パターン2:Git管理だけを解除(フォルダは残す)
    1. なぜこの方法を使うのか?
    2. 手順
    3. 削除後の確認
    4. .git削除後の注意点
  5. パターン3:リモートリポジトリの削除(超危険!)
    1. 削除前の最終確認
    2. GitHub でのリモートリポジトリ削除
    3. GitLab でのリモートリポジトリ削除
    4. Bitbucket でのリモートリポジトリ削除
    5. 削除後の影響
  6. リモート接続だけを削除する方法
    1. 現在のリモート接続を確認
    2. リモート接続を削除
    3. 削除の確認
    4. 別のリモートに接続し直す
    5. 複数のリモートがある場合
  7. よくあるトラブルと解決方法
    1. トラブル1:「Permission denied」で削除できない
    2. トラブル2:「Directory not empty」エラー
    3. トラブル3:削除したはずなのにまだある
    4. トラブル4:Gitがまだリポジトリを認識している
    5. トラブル5:「repository is currently checked out」エラー
    6. トラブル6:削除後にgit pushすると403エラー
  8. 削除のベストプラクティス
    1. 1. 削除前チェックリストを使う
    2. 2. バックアップを取ってから削除
    3. 3. 段階的に削除する
    4. 4. チーム開発での削除手順
  9. よくある質問(FAQ)
    1. Q1:ローカルリポジトリを削除すると、GitHubのリポジトリも消えますか?
    2. Q2:削除したリポジトリを復元できますか?
    3. Q3:間違って削除してしまいました。どうすれば?
    4. Q4:大量のリポジトリを一括削除できますか?
    5. Q5:Gitの履歴が大きすぎます。軽量化できますか?
    6. Q6:複数のブランチがある場合、削除前に確認すべきことは?
    7. Q7:削除したいけど、一部のファイルだけ残したい
    8. Q8:組織のリポジトリを削除する権限がありません
    9. Q9:削除してもディスク容量が増えません
    10. Q10:誤ってリモートリポジトリを削除しました。復元できますか?
  10. まとめ:安全にリポジトリを削除するための3ステップ
    1. ステップ1:削除前の確認(必須!)
    2. ステップ2:適切な方法で削除
    3. ステップ3:削除後の確認

削除の3つのパターン:あなたが削除したいのはどれ?

まず最初に、「何を削除したいのか」を明確にしましょう。Gitには3種類の削除方法があります。

パターン1:ローカルリポジトリの削除(最も一般的)

こんな時に使う:

  • 間違った場所にクローンしてしまった
  • プロジェクトが終了して不要になった
  • ディスク容量を空けたい
  • 環境を一度クリーンにして再クローンしたい

削除対象: あなたのパソコン内のフォルダ全体

影響範囲: あなたのパソコンだけ(他の人には影響なし)

リモートリポジトリへの影響: なし(GitHub等のリポジトリは残る)

復元方法: git cloneで再度クローンすれば復元可能

パターン2:Git管理だけを解除(フォルダは残す)

こんな時に使う:

  • ファイルは残したいけどGitの管理から外したい
  • プロジェクトをGitから切り離して通常のフォルダにしたい
  • Gitの履歴だけを削除したい

削除対象: .gitフォルダだけ

影響範囲: あなたのパソコンだけ

リモートリポジトリへの影響: なし

復元方法: 不可能(履歴が完全に消える)

パターン3:リモートリポジトリの削除(超危険!)

こんな時に使う:

  • プロジェクト自体を完全に廃止する
  • 誤って作成したリポジトリを削除する
  • テスト用リポジトリを片付ける

削除対象: GitHub/GitLab等のオンライン上のリポジトリ

影響範囲: 全員(チーム全体のアクセスができなくなる)

リモートリポジトリへの影響: 完全に消滅

復元方法: 90日以内なら復元可能(GitHub等)


ほとんどの場合、必要なのは「パターン1」です。 この記事では、すべてのパターンを詳しく解説しますが、特にパターン1を重点的に説明します。

【重要】削除前の必須チェックリスト

リポジトリを削除する前に、必ず以下を確認してください。これを怠ると、大切なコードを失う可能性があります。

チェック1:コミットしていない変更がないか確認

cd /path/to/your/repository
git status

安全な出力例:

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

危険な出力例:

On branch main
Changes not staged for commit:
  modified:   src/app.js

Untracked files:
  new-feature.txt

変更がある場合の対処:

# 方法1:変更をコミット
git add .
git commit -m "Save work before deleting repo"
git push

# 方法2:変更を一時退避
git stash save "Work in progress"

# 方法3:変更を破棄(慎重に!)
git checkout .
git clean -fd

チェック2:pushしていないコミットがないか確認

git log origin/main..HEAD

安全な出力例:

(何も表示されない)

危険な出力例:

commit abc123def456...
Author: Your Name <you@example.com>
Date:   Tue Dec 10 10:00:00 2025

    Important feature added

未pushのコミットがある場合の対処:

# リモートの最新情報を取得
git fetch

# ローカルのコミットをpush
git push origin main

チェック3:リモートリポジトリの状態を確認

# リモート接続を確認
git remote -v

出力例:

origin  https://github.com/username/repo.git (fetch)
origin  https://github.com/username/repo.git (push)

リモートが存在する場合:

  • ローカルを削除してもリモートは残る
  • 後でgit cloneすれば復元可能

リモートが存在しない場合(ローカル専用):

  • 削除したら完全に消える
  • 事前にバックアップ推奨

チェック4:大切なブランチがないか確認

# すべてのブランチを確認
git branch -a

出力例:

* main
  feature/new-design
  remotes/origin/main
  remotes/origin/develop

ローカル専用ブランチがある場合:

# ローカルブランチをリモートにpush
git push origin feature/new-design

チェック5:未保存のスタッシュがないか確認

git stash list

出力例:

stash@{0}: WIP on main: abc123 Update README
stash@{1}: WIP on feature: def456 Add tests

スタッシュがある場合の対処:

# スタッシュを適用してコミット
git stash pop
git add .
git commit -m "Apply stashed changes"
git push

✅ すべてのチェックが完了したら、削除に進みましょう!

パターン1:ローカルリポジトリの削除方法

最も一般的な「クローンしたリポジトリをパソコンから完全に削除する」方法です。

方法1-A:コマンドで削除(推奨)

コマンドラインから削除する方法です。OS別に解説します。

Linux / Mac の場合

基本コマンド:

# リポジトリの親ディレクトリに移動
cd /path/to/parent-directory

# リポジトリを削除
rm -rf repository-name

具体例:

# 例:プロジェクトフォルダが ~/projects/my-app の場合
cd ~/projects
rm -rf my-app

オプションの説明:

  • rm:remove(削除)コマンド
  • -r:recursive(再帰的)- ディレクトリ内のすべてを削除
  • -f:force(強制)- 確認なしで削除

⚠️ 警告: rm -rfは「滅びのコマンド」と呼ばれるほど強力です。間違ったディレクトリを指定すると取り返しのつかないことになります。

安全に実行する方法:

# ステップ1:削除対象を確認
ls -la my-app

# ステップ2:現在のディレクトリを確認
pwd

# ステップ3:念のためドライラン(削除されるファイル一覧を表示)
find my-app -type f

# ステップ4:確信を持ったら削除
rm -rf my-app

# ステップ5:削除されたか確認
ls -la | grep my-app

さらに安全に:対話的削除

# 確認しながら削除(-iオプション)
rm -ri my-app

各ファイルごとに「削除しますか?」と聞かれます。

Windows(コマンドプロンプト)の場合

REM リポジトリの親ディレクトリに移動
cd C:\Users\YourName\projects

REM リポジトリを削除
rmdir /s /q repository-name

具体例:

cd C:\Users\YourName\projects
rmdir /s /q my-app

オプションの説明:

  • /s:サブディレクトリも含めて削除
  • /q:確認なしで削除(Quiet mode)

確認しながら削除する場合:

REM /qを外すと確認される
rmdir /s my-app

出力:

my-app、およびその中のすべてのファイルを削除しますか (Y/N)?

Windows(PowerShell)の場合

# リポジトリの親ディレクトリに移動
cd C:\Users\YourName\projects

# リポジトリを削除
Remove-Item -Recurse -Force repository-name

具体例:

cd C:\Users\YourName\projects
Remove-Item -Recurse -Force my-app

確認しながら削除する場合:

# -Confirmオプションを追加
Remove-Item -Recurse -Confirm my-app

方法1-B:GUI(エクスプローラー・Finder)で削除

コマンドが苦手な方は、普通のフォルダと同じように削除できます。

Windows の場合

  1. エクスプローラーを開く
  • Windows + Eキーで起動
  1. リポジトリがあるフォルダに移動
  • 例:C:\Users\YourName\projects\my-app
  1. フォルダを右クリック → 「削除」
  • または、フォルダを選択してDeleteキー
  1. ごみ箱を確認
  • ごみ箱に移動されるので、間違えても復元可能
  1. 完全に削除する場合
  • ごみ箱を空にする

注意:隠しフォルダの確認

Gitリポジトリには.gitという隠しフォルダがあります。通常の削除で一緒に消えますが、念のため確認:

1. エクスプローラーで「表示」タブをクリック
2. 「隠しファイル」にチェック
3. .gitフォルダが表示される

Mac の場合

  1. Finderを開く
  • Command + SpaceでSpotlight → “Finder”
  1. リポジトリがあるフォルダに移動
  • 例:/Users/YourName/projects/my-app
  1. フォルダをゴミ箱にドラッグ
  • または、フォルダを選択してCommand + Delete
  1. ゴミ箱を確認
  • ゴミ箱に移動されるので、間違えても復元可能
  1. 完全に削除する場合
  • Finderの「ゴミ箱を空にする」

注意:隠しフォルダの確認

1. Finderでリポジトリフォルダを開く
2. Command + Shift + . (ドット)を押す
3. 隠しフォルダ(.gitなど)が表示される

Linux(GUI環境)の場合

  1. ファイルマネージャーを開く
  • Nautilus、Dolphin、Thunar等
  1. リポジトリがあるフォルダに移動
  • 例:/home/yourname/projects/my-app
  1. フォルダを右クリック → 「ゴミ箱へ移動」
  • または、フォルダを選択してDeleteキー
  1. ゴミ箱を確認
  • 間違えても復元可能
  1. 完全に削除する場合
  • ゴミ箱を空にする
  • または、Shift + Deleteで即座に完全削除

方法1-C:GitクライアントGUIで削除

GitHub Desktop の場合

  1. GitHub Desktopを起動
  2. 左サイドバーでリポジトリを右クリック
  3. 「Remove…」を選択
  4. 削除オプションを選択:
   ○ Remove from list only
     (リストから削除するだけ、ファイルは残る)

   ● Move to Recycle Bin / Trash
     (ゴミ箱に移動、復元可能)
  1. 「Remove」ボタンをクリック

SourceTree の場合

  1. SourceTreeを起動
  2. リポジトリ一覧でリポジトリを選択
  3. 右クリック → 「削除」または「Remove」
  4. 確認ダイアログで「はい」
  5. 「ディスク上のファイルも削除」をチェック
  • チェックしないとリストから消えるだけ

Git GUI の場合

  1. Git GUIを起動
  2. 「Repository」メニュー → 「Delete Repository」
  3. 確認ダイアログで「Yes」

削除の確認方法

削除が成功したか確認しましょう。

コマンドで確認:

# ディレクトリが存在しないか確認
ls /path/to/parent-directory/repository-name

出力例(削除成功):

ls: cannot access 'repository-name': No such file or directory

Git コマンドで確認:

cd /path/to/repository-name
git status

出力例(削除成功):

fatal: not a git repository (or any of the parent directories): .git

このエラーが出れば、リポジトリは完全に削除されています。

パターン2:Git管理だけを解除(フォルダは残す)

ファイルはそのまま残して、Gitの管理(.gitフォルダ)だけを削除する方法です。

なぜこの方法を使うのか?

ユースケース:

  • プロジェクトをGitから切り離したい
  • Gitの履歴が大きすぎて新しく作り直したい
  • Git管理をやめて通常のバックアップに切り替える

手順

Linux / Mac の場合

# リポジトリ内に移動
cd /path/to/repository

# .gitフォルダを削除
rm -rf .git

# 確認
ls -la | grep .git

何も表示されなければ成功です。

より安全な方法:

# .gitフォルダをバックアップしてから削除
mv .git .git.backup

# 問題なければバックアップも削除
rm -rf .git.backup

Windows(コマンドプロンプト)の場合

REM リポジトリ内に移動
cd C:\Users\YourName\projects\my-app

REM .gitフォルダを削除
rmdir /s /q .git

REM 確認
dir /a .git

Windows(PowerShell)の場合

# リポジトリ内に移動
cd C:\Users\YourName\projects\my-app

# .gitフォルダを削除
Remove-Item -Recurse -Force .git

# 確認
Get-ChildItem -Force .git

GUIで削除する場合

Windows:

1. エクスプローラーで「表示」→「隠しファイル」をチェック
2. .gitフォルダが表示される
3. 右クリック → 削除

Mac:

1. Finderでリポジトリフォルダを開く
2. Command + Shift + . で隠しファイル表示
3. .gitフォルダをゴミ箱にドラッグ

削除後の確認

git status

出力例:

fatal: not a git repository (or any of the parent directories): .git

このエラーが出れば、Git管理が解除されています。

ファイルは残っているか確認:

ls -la

通常のファイル・フォルダはすべて残っているはずです。

.git削除後の注意点

  • 復元不可能: コミット履歴は完全に消える
  • リモートとの接続も切れる
  • 再度Git管理にするには: git initから再スタート

パターン3:リモートリポジトリの削除(超危険!)

⚠️ 警告:この操作は非常に危険です!

リモートリポジトリを削除すると:

  • チーム全員がアクセスできなくなる
  • すべてのクローンの「元」が消える
  • CIやデプロイメントが壊れる
  • 復元は限定的(GitHub: 90日以内)

削除前の最終確認

以下をすべて確認してください:

□ 本当に削除する必要があるか?(アーカイブで十分では?)
□ チームメンバー全員に確認したか?
□ 重要なブランチ・タグは全てバックアップしたか?
□ 削除権限があるか確認したか?
□ ドキュメントやWikiもバックアップしたか?
□ Issue・Pull Requestもエクスポートしたか?

GitHub でのリモートリポジトリ削除

ステップ1:リポジトリページを開く

https://github.com/username/repository-name

ブラウザで該当リポジトリにアクセス。

ステップ2:Settings に移動

1. リポジトリページ上部の「Settings」タブをクリック
2. 左サイドバーの一番下までスクロール

ステップ3:Danger Zone を確認

ページ下部に赤い枠の「Danger Zone」セクションがある

ステップ4:Delete this repository をクリック

「Delete this repository」ボタンをクリック

ステップ5:確認ダイアログで入力

Please type username/repository-name to confirm.

入力例:

myusername/my-project

正確に入力しないと削除できません。

ステップ6:パスワード認証

場合によっては、GitHubのパスワードや2FAコードを入力。

ステップ7:最終確認

「I understand the consequences, delete this repository」

チェックを入れて、最終的な削除ボタンをクリック。

GitLab でのリモートリポジトリ削除

1. リポジトリページを開く
2. Settings → General
3. Advanced → 「Remove project」セクション
4. 「Delete project」ボタン
5. プロジェクト名を入力して確認

Bitbucket でのリモートリポジトリ削除

1. リポジトリページを開く
2. Repository settings
3. Delete repository
4. 確認ダイアログでリポジトリ名を入力

削除後の影響

起こること:

  • リポジトリページが404エラーになる
  • すべてのクローンでgit pushが失敗する
  • CI/CDパイプラインが停止する
  • Webhookが無効になる
  • Issueやディスカッションもすべて消える

復元方法(GitHub):

1. Settings → Repositories → Deleted repositories
2. 90日以内なら「Restore」ボタンが表示される
3. クリックして復元(Issue等も復元される)

リモート接続だけを削除する方法

「ローカルリポジトリは残すけど、リモートとの接続を切りたい」場合の方法です。

現在のリモート接続を確認

git remote -v

出力例:

origin  https://github.com/username/repo.git (fetch)
origin  https://github.com/username/repo.git (push)

リモート接続を削除

git remote remove origin

または:

git remote rm origin

両方とも同じ意味です。

削除の確認

git remote -v

出力例:

(何も表示されない)

別のリモートに接続し直す

# 新しいリモートを追加
git remote add origin https://github.com/newuser/newrepo.git

# 確認
git remote -v

複数のリモートがある場合

# すべてのリモートを確認
git remote -v

出力例:

origin     https://github.com/user/repo.git (fetch)
origin     https://github.com/user/repo.git (push)
upstream   https://github.com/original/repo.git (fetch)
upstream   https://github.com/original/repo.git (push)

特定のリモートだけ削除:

git remote remove upstream

よくあるトラブルと解決方法

トラブル1:「Permission denied」で削除できない

症状:

$ rm -rf my-app
rm: cannot remove 'my-app/.git/objects/...': Permission denied

原因: ファイルが書き込み保護されている

解決方法:

Linux / Mac:

# 所有者を確認
ls -la my-app

# 権限を変更
chmod -R u+w my-app

# 再度削除
rm -rf my-app

Windows:

REM 読み取り専用属性を解除
attrib -R /S my-app\*

REM 再度削除
rmdir /s /q my-app

トラブル2:「Directory not empty」エラー

症状:

$ rmdir my-app
rmdir: failed to remove 'my-app': Directory not empty

原因: rmdirは空のディレクトリしか削除できない

解決方法:

# -r オプションを使う
rm -rf my-app

# Windowsの場合
rmdir /s /q my-app

トラブル3:削除したはずなのにまだある

症状: GUIで削除したのに、コマンドで見るとまだ存在する

原因: ゴミ箱に移動しただけ

解決方法:

Windows:

1. ゴミ箱を開く
2. 該当フォルダを右クリック → 「削除」
3. または「ゴミ箱を空にする」

Mac:

1. Finderのゴミ箱を開く
2. 「ゴミ箱を空にする」

Linux:

# ゴミ箱の場所
ls ~/.local/share/Trash/files/

# 完全削除
rm -rf ~/.local/share/Trash/files/my-app

トラブル4:Gitがまだリポジトリを認識している

症状:

$ cd my-app
$ git status
On branch main
...

削除したはずなのにGitコマンドが動く。

原因: .gitフォルダが残っている

解決方法:

# .gitフォルダを削除
rm -rf .git

# 確認
git status
# → fatal: not a git repository

トラブル5:「repository is currently checked out」エラー

症状:

$ rm -rf my-app
fatal: cannot delete branch 'main' used by worktree at '/path/to/my-app'

原因: Gitのワークツリー機能を使用している

解決方法:

# ワークツリーを確認
git worktree list

# ワークツリーを削除
git worktree remove /path/to/my-app

# 通常の削除
rm -rf my-app

トラブル6:削除後にgit pushすると403エラー

症状:

$ git push
error: unable to access 'https://github.com/user/repo.git/': The requested URL returned error: 403

原因: リモートリポジトリが削除されている

確認方法:

# リモートの存在を確認
git ls-remote origin

エラーが出る場合: リモートリポジトリは削除されている

解決方法:

# 新しいリモートリポジトリを作成
# GitHubなどでリポジトリを新規作成

# 新しいリモートに接続
git remote set-url origin https://github.com/user/new-repo.git

# プッシュ
git push -u origin main

削除のベストプラクティス

1. 削除前チェックリストを使う

#!/bin/bash
# pre-delete-check.sh

echo "=== Git Repository Deletion Check ==="

# 未コミットの変更
echo -n "Uncommitted changes: "
if git diff --quiet && git diff --cached --quiet; then
    echo "✅ None"
else
    echo "❌ Found! Please commit or stash first"
    git status
    exit 1
fi

# 未pushのコミット
echo -n "Unpushed commits: "
UNPUSHED=$(git log origin/main..HEAD --oneline | wc -l)
if [ "$UNPUSHED" -eq 0 ]; then
    echo "✅ None"
else
    echo "❌ $UNPUSHED commits not pushed!"
    git log origin/main..HEAD --oneline
    exit 1
fi

# スタッシュ
echo -n "Stashed changes: "
STASHES=$(git stash list | wc -l)
if [ "$STASHES" -eq 0 ]; then
    echo "✅ None"
else
    echo "⚠️ $STASHES stashes found"
    git stash list
fi

echo ""
echo "✅ Safe to delete!"

使い方:

cd /path/to/repository
bash pre-delete-check.sh

2. バックアップを取ってから削除

# 完全なバックアップ(.git含む)
tar -czf my-app-backup-$(date +%Y%m%d).tar.gz my-app/

# または
zip -r my-app-backup-$(date +%Y%m%d).zip my-app/

# バックアップの確認
tar -tzf my-app-backup-*.tar.gz | head

3. 段階的に削除する

# ステップ1:リネーム(誤削除防止)
mv my-app my-app.to-delete

# ステップ2:数日待つ
# 問題なければ...

# ステップ3:削除
rm -rf my-app.to-delete

4. チーム開発での削除手順

推奨フロー:

  1. 事前通知(1週間前)
   件名:【重要】リポジトリ削除予定のお知らせ

   以下のリポジトリを削除予定です:
   - リポジトリ名:my-old-project
   - 削除予定日:2025年12月20日
   - 理由:プロジェクト終了

   必要な資材がある方は、期日までに保存してください。
  1. アーカイブ化(削除の代替案)
   # GitHubでアーカイブ(読み取り専用にする)
   Settings → Danger Zone → Archive this repository
  1. 最終確認(前日)
  • チーム全員に再度確認
  • バックアップの作成
  1. 削除実行
  2. 事後報告

よくある質問(FAQ)

Q1:ローカルリポジトリを削除すると、GitHubのリポジトリも消えますか?

A:いいえ、消えません。

ローカルリポジトリは、あなたのパソコン内のコピーです。削除しても、GitHub等のリモートリポジトリには影響しません。

イメージ:

リモート(GitHub):原本 → 残る
ローカル(あなたのPC):コピー → 削除される

後でgit cloneすれば、いつでも再取得できます。

Q2:削除したリポジトリを復元できますか?

A:場合によります。

削除方法復元可能性
ローカルリポジトリを削除✅ リモートから再クローン可能
.gitフォルダのみ削除❌ 履歴は復元不可、ファイルは残る
リモートリポジトリを削除△ 90日以内なら復元可能(GitHub)
ゴミ箱に移動✅ ゴミ箱から復元可能
rm -rfで完全削除❌ 不可能(バックアップがあれば可)

Q3:間違って削除してしまいました。どうすれば?

A:以下の手順で試してください。

ステップ1:ゴミ箱を確認

  • Windows:デスクトップのゴミ箱
  • Mac:Dock のゴミ箱
  • Linux:~/.local/share/Trash/

ステップ2:リモートから再クローン

git clone https://github.com/username/repo.git

ステップ3:データ復元ソフトを試す

  • Windows:Recuva
  • Mac:Disk Drill
  • Linux:TestDisk / PhotoRec

ステップ4:システムバックアップから復元

  • Windows:ファイル履歴
  • Mac:Time Machine
  • Linux:rsnapshot等

Q4:大量のリポジトリを一括削除できますか?

A:できますが、非常に危険です。

# 例:すべての*-testリポジトリを削除
cd ~/projects
rm -rf *-test

# または
find ~/projects -name "*-test" -type d -exec rm -rf {} +

推奨:スクリプトで安全に削除

#!/bin/bash

REPOS=(
    "old-project-1"
    "test-repo-2"
    "deprecated-app"
)

for repo in "${REPOS[@]}"; do
    echo "Checking $repo..."
    cd "$repo" || continue

    # 未pushのコミット確認
    if git log origin/main..HEAD | grep -q commit; then
        echo "❌ $repo has unpushed commits! Skipping..."
        cd ..
        continue
    fi

    cd ..
    echo "✅ Deleting $repo"
    rm -rf "$repo"
done

Q5:Gitの履歴が大きすぎます。軽量化できますか?

A:はい、いくつか方法があります。

方法1:.gitだけ削除して作り直す

# 現在のファイルを保持
cp -r my-app my-app-backup

# .git削除
rm -rf my-app/.git

# 新しく初期化
cd my-app
git init
git add .
git commit -m "Initial commit (history reset)"

# 新しいリモートにpush
git remote add origin https://github.com/user/new-repo.git
git push -u origin main

方法2:Shallow Clone(浅いクローン)

# 最新のコミットだけクローン
git clone --depth 1 https://github.com/user/repo.git

方法3:大きなファイルを履歴から削除

# BFG Repo-Cleanerを使用
java -jar bfg.jar --strip-blobs-bigger-than 100M my-repo.git

Q6:複数のブランチがある場合、削除前に確認すべきことは?

A:以下を確認してください。

# すべてのブランチを表示
git branch -a

# リモートにないローカルブランチを確認
git branch -vv | grep -v origin

未pushのブランチがある場合:

# リモートにpush
git push origin feature-branch

# または、別途バックアップ
git bundle create feature-branch.bundle feature-branch

Q7:削除したいけど、一部のファイルだけ残したい

A:コピーしてから削除してください。

# 重要なファイルをコピー
cp my-app/important-config.yml ~/backup/
cp -r my-app/docs ~/backup/

# リポジトリを削除
rm -rf my-app

Q8:組織のリポジトリを削除する権限がありません

A:権限を持つ人に依頼してください。

必要な権限:

  • GitHub:Admin権限
  • GitLab:Owner / Maintainer
  • Bitbucket:Admin権限

権限を確認:

GitHub:Settings タブが見えるか確認
GitLab:Settings → Repository → Expand

見えない場合は、オーナーに連絡してください。

Q9:削除してもディスク容量が増えません

A:ゴミ箱が原因の可能性があります。

Windows:

1. デスクトップのゴミ箱を右クリック
2. 「ゴミ箱を空にする」

Mac:

1. Finderの「ゴミ箱」を開く
2. 「ゴミ箱を空にする」

Linux:

# ゴミ箱を空にする
rm -rf ~/.local/share/Trash/*

Q10:誤ってリモートリポジトリを削除しました。復元できますか?

A:90日以内なら復元可能です(GitHub)。

GitHub での復元手順:

1. 自分のプロフィールページに移動
2. Settings → Repositories
3. 下にスクロールして「Deleted repositories」セクション
4. 復元したいリポジトリを探す
5. 「Restore」ボタンをクリック

注意:

  • 90日を過ぎると完全に削除される
  • GitLab・Bitbucketでも同様の機能あり

まとめ:安全にリポジトリを削除するための3ステップ

Gitのリポジトリ削除は、正しく行えば安全で簡単な操作です。最後にポイントをまとめます。

ステップ1:削除前の確認(必須!)

# チェックリスト
✅ git status → コミットしていない変更なし
✅ git log origin/main..HEAD → 未pushのコミットなし
✅ git stash list → スタッシュなし
✅ git remote -v → リモート確認
✅ バックアップ作成(必要に応じて)

ステップ2:適切な方法で削除

ローカルリポジトリ削除(最も一般的):

# Linux / Mac
rm -rf repository-name

# Windows
rmdir /s /q repository-name

# または GUIで削除

Git管理だけ解除:

rm -rf .git

リモートリポジトリ削除(超危険):

GitHub → Settings → Danger Zone → Delete this repository

ステップ3:削除後の確認

# 削除されたか確認
ls repository-name
# → No such file or directory

# Git管理が外れたか確認
git status
# → fatal: not a git repository

最も重要なポイント:

  1. ローカル削除はリモートに影響しない – 安心して削除できる
  2. 削除前に必ずバックアップ確認 – 未pushがないか確認
  3. rm -rfは強力 – 間違ったディレクトリを指定しない
  4. ⚠️ リモート削除は超危険 – チーム全体に影響する
  5. ゴミ箱に移動すれば復元可能 – 即座に完全削除しない

この記事の手順に従えば、Gitリポジトリを安全に削除できます。不安な場合は、まずバックアップを取ってから削除することをお勧めします!

コメント

タイトルとURLをコピーしました