[解決済み] 裸のgitリポジトリを通常のリポジトリに変換するにはどうしたらいいですか?
2023-05-30 02:24:16
質問
私は裸のgitリポジトリを持っていますが、sshを介してその内容にアクセスし、閲覧する必要があります(ファイルマネージャのようなユーザーエクスペリエンスで)。
私はそれをクローンすることができると仮定します。
git clone -l <path_to_bare_repo> <new_normal_repo>
しかし、私のリポジトリは約20GBの大きさで、それを複製するスペースがありません。裸のリポジトリをインプレースで変換して、その中の作業コピーで終わらせる方法はありますか?
どのように解決するのですか。
注意 : このテストは 非常にシンプルな 1-commit リポジトリでテストしました。これをダブルチェックするために マンページ を読み、StackOverflowで見つけたアドバイスに従う前に、常にバックアップをとっておくことをお勧めします。(バックアップはとっていますよね?)
を変換するには
--bare
リポジトリからベアでないものに変更します。
-
を作成します。
.git
フォルダをリポジトリのトップレベルに作成します。 -
リポジトリ管理用のものを移動する (
HEAD branches config description hooks info objects refs
など) を.git
を作成します。 -
実行
git config --local --bool core.bare false
を実行して、ローカルのgit-repositoryをnon-bareに変換します。 -
(コメントにより
タマーシュ・パップ
)
ステップ3の後、あなたはブランチ
master
(あるいはメインブランチ) にいて、すべてのファイルが削除され、その削除が段階的に行われていることがわかります。これは正常な状態です。ただ、手動でチェックアウトしてmaster
を行うか、あるいはgit reset --hard
を実行すれば完了です。 -
(によって報告された問題を解決するため
ロイ
)
編集
.git/config
ファイルに行を追加fetch = +refs/heads/*:refs/remotes/origin/*
の後にurl = <...>
で[remote "origin"]
セクションの中に入れてください。それ以外の場合はgit fetch
にはorigin/master
と他のオリジンのブランチが表示されません。
これらの手順は、逆方向の
この質問
とは異なり、quot;git-convert normal to bare repository" - 特に注意すべきは
この回答
には、上記の手順 (どちらの方向でも) は
異なる
を行うこととは異なると述べています。
git-clone
. あなたに関係あるかどうかは分かりませんが、あなたが言及した
git clone
を質問しています。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git リポジトリでのマージの衝突を解決するには?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Note: Git prompts このリポジトリで別の git プロセスが実行されているようです ....
-
Git error: cannot spawn ssh.の回避策。そのようなファイルやディレクトリはありません
-
Git はファイル名の大文字と小文字を無視し、修正する
-
[解決済み] 通常のGitリポジトリをベアリポジトリに変換する方法は?
-
git reports an error fatal: unable to auto-detect email address (got 'Administrator@MS-20180504MMDH.(none)')
-
[解決済み] GitHubで2つのブランチの差分を取るには?
-
[解決済み] なぜGitでコミットする前にステージが必要なのですか?
-
[解決済み] Gitでは、これらの言葉はどのような意味ですか?リポジトリ、フォーク、ブランチ、クローン、トラック?
-
[解決済み] gitで、stashを適用せずに、追跡されていないstashedファイルを表示する方法はありますか?
-
[解決済み] GitHub から cURL を使って tarball をダウンロードするには?