[解決済み] git init」と「git init -bare」の違いは何ですか?
質問
とはどのような違いがあるのでしょうか?
git init
と
git init --bare
? を必要とするブログ記事が多いことに気がつきました。
--bare
を Git サーバーに使用することはできますか?
から マニュアルページ と書いてありました。
--bare
ベアリポジトリを作成します。GIT_DIR 環境が設定されていない場合、現在の作業ディレクトリに設定されます。
しかし、実際にはどうなのでしょうか?それは
--bare
を Git サーバーに設定する必要があるのでしょうか?
解決方法は?
裸のGitレポ
このバリエーションは作業ディレクトリを持つリポジトリを作成するので、実際に作業することができます (
git clone
). 作成後、そのディレクトリに
.git
フォルダに、履歴とすべての git の配管が入ります。あなたが作業するのは
.git
フォルダーがあります。
素のGitレポ
もうひとつのバリエーションは、作業ディレクトリを持たないリポジトリを作成します (
git clone --bare
). 作業可能なディレクトリは得られません。ディレクトリの中にあるものは、すべて
.git
フォルダーを作成します。
一方を使う理由と他方を使う理由
作業ディレクトリを持たないgitリポジトリの必要性は、ブランチをプッシュしても誰かが作業しているものが管理されないという事実があるからです。それでも、むき出しでないリポジトリにプッシュすることはできますが、その作業ディレクトリで誰かが作業しているブランチを移動させる可能性があるため拒否されるでしょう。
つまり、作業フォルダがないプロジェクトでは、gitが保存しているオブジェクトしか見ることができないのです。それらは圧縮され、シリアライズされ、その内容のSHA1(ハッシュ)の下に保存されています。素のリポジトリでオブジェクトを取得するためには
git show
を指定し、見たいオブジェクトのsha1を指定します。あなたのプロジェクトがどのような構造になっているかは見ることができないでしょう。
ベアリポジトリは、通常、誰もが自分の仕事を移動させる中央リポジトリです。実際の作業を操作する必要はありません。複数の人の間で努力を同期させるための方法です。あなたは自分のプロジェクトファイルを直接見ることはできません。
プロジェクトに取り組んでいるのが自分だけであったり、論理的に中心的なリポジトリが必要でない場合は、ベアリポジトリは必要ないでしょう。そのような場合は
git pull
から
を他のリポジトリにコピーすることができます。これにより、裸のリポジトリでないところにプッシュするときにgitが持つ異論を回避することができます。
お役に立てれば幸いです。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Gitで複数のコミットの著者名やコミッター名、Eメールを変更する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み】Git Extensions。Win32 エラー 487: cygwinのヒープ用に領域を確保できなかった、Win32エラー0
-
git commit リモートエラー [rejected] master -> master (フェッチファースト)
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] git: fatal: リモートリポジトリから読み取れませんでした。
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] 警告: リモート HEAD は存在しない参照元を参照しているため、チェックアウトできません。
-
[解決済み] fatal: bad revision "とはどういう意味ですか?
-
[解決済み】「git --bare init」リポジトリはどのように使用するのですか?