Githubからぶら下がっているコミットを削除する方法は?
-
09-10-2019 - |
質問
昨日、私はプッシュしました GithubのConnectBotの私のフォーク. 。私は一度プッシュしましたが、自分の望みのように変更を加えていないことに気付き、コミットを再生し、再びプッシュしました。
現在、GitHubには両方がコミットしています。
- https://github.com/nylen/connectbot/commit/1cd775d - 最初の「悪い」コミット
- https://github.com/nylen/connectbot/commit/987671c - 私が保持したいもの
私のマスターブランチは2番目のコミットを追跡していますが、最初のコミットはまだ利用可能であり、私のアクティビティフィードにあります。修正されたバージョンの代わりに、誰もそのコミットを誤ってプルしないようにするにはどうすればよいですか?
解決
リポジトリを削除するか、githubにお問い合わせください
すべての問題を失う余裕があれば、リポジトリを削除し、悪いコミットなしで再作成することは機能しないようです。データはコミットAPIからも消えます(ただし、プッシュイベントはまだ表示されます)。参照: https://stackoverflow.com/a/32840254/895245
問題データを失う余裕がない場合、GitHubサポートは、ぶら下がっているコミットを手動で削除できます。たとえば、i すべてのgithubコミットメールをリポジトリにアップロードしました 彼らは私にそれを倒すように頼んだので、私はしました、そして彼らは gc
. 。データを含むリクエストをプルします ただし、削除する必要があります: :このレポは、このため、最初のテイクダウンの1年後までにアクセスできたままでした。
彼らの現在 ヘルプページが言う:
GitHubサポートに連絡して、GitHubのリポジトリのキャッシュされたビューとプルリクエストを永久に削除できます。
他のヒント
GitHubは、トップレベルの参照(タグ、ブランチ、リフェログなど)から到達できないコミット(およびその他のオブジェクト)を定期的に収集します。これは、時間の経過とともに(次の月に)、このオブジェクトが消えることを意味します。
引っ張るには、参照されるオブジェクトのみを含むパックを生成する必要があります。そうすることで、クローンやプルの結果として誰もそのコミットを取得する必要はありません。例えば、
$ git clone git://github.com/nylen/connectbot.git
Cloning into connectbot...
remote: Counting objects: 6261, done.
remote: Compressing objects: 100% (1900/1900), done.
remote: Total 6261 (delta 3739), reused 5980 (delta 3520)
Receiving objects: 100% (6261/6261), 3.04 MiB | 3.40 MiB/s, done.
Resolving deltas: 100% (3739/3739), done.
$ git cat-file -t 1cd775d
fatal: Not a valid object name 1cd775d
すぐに削除する必要がある場合は、おそらく連絡する必要があります GitHubサポート.