問題タブ [git-bare]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - サーバー上にある git リポジトリを作成する場合、ベア リポジトリに変換できますか?
私はすでにリポジトリを作成しました。ベアタイプにしようか、最初からやり直そうか。
git - 通常のGitリポジトリをベアリポジトリに変換するにはどうすればよいですか?
「通常の」Gitリポジトリをベアリポジトリに変換するにはどうすればよいですか?
主な違いは次のようです。
通常のGitリポジトリでは
.git
、リポジトリ内に、作業コピーを構成するすべての関連データと他のすべてのファイルを含むフォルダーがあります。裸のGitリポジトリには、作業コピーはなく、フォルダ(これを呼びましょう
repo.git
)には実際のリポジトリデータが含まれています
git - 裸の Git リポジトリにプッシュするときに「receive.denyCurrentBranch」エラーが発生する
あるマシンからブランチをプッシュし、別のマシンにプルしたリモート git ベア リポジトリを用意します。
他のマシンでいくつかの変更を行い、それらの変更をリモートの裸のリポジトリにプッシュしようとすると、「receive.denyCurrentBranch」エラーが発生します。
どうしたの?
これは、何もチェックアウトされていない裸のレポでは発生しないはずです。
マシン 2 から見たブランチは次のとおりです。
「修正」は、両方の開発マシンの現在のブランチです。
最初にマシン 2 でそのブランチをプルしたとき、次のことを行いました。
最初の「remotes」行が疑わしい - HEAD が現在のブランチを指しているように見えるが、そうではない。ここで何かが足りないと思います..
更新 1 「修正」ブランチを dev1 ブランチにマージしてから、「dev1」ブランチをプッシュしました。
これは回避策でしたが、本当の問題は、HEAD が現在のブランチ ('Fix') ではなく、非アクティブなブランチ ('dev1') に関連付けられていたことだと思います。リモートリポジトリのヘッドを変更する方法がわかりませんか?
git - Git ベア - 何をバックアップしますか?
これが他の場所でカバーされている場合は申し訳ありませんが、答えが見つかりません。
私は、開発リポジトリのクローン元のリポジトリである、bare.git と呼ばれる裸のリポジトリを持っています。それはすべてうまくいきます。
私は、bare.git がどこからソース ファイルを取得するのか知りたいです。それらはbare.gitファイル構造内にバイナリファイルとして保存されていますか? 私は、bare.git を別の場所に移動し、そこからレポジトリを複製することができます。それとも、ファイルへの絶対ネットワーク参照を保存していますか?
この情報を知りたい主な理由は 3 つあります。
- 何をバックアップするかを知る必要があります。
- 私の上司は、ソースコードがどこに行ったのか知りたがっています。
- テスト用に現在の複合バージョンが必要です。
git - gitベアリポジトリの最後のコミットを解除するにはどうすればよいですか?
ベアリポジトリには意味をなさないgitコマンドがいくつかあることを考慮に入れて(ベアリポジトリはインデックスを使用せず、作業ディレクトリがないため)、
このようなリポジトリの最後の変更をコミット解除するソリューションではありません。
インターネットで検索すると、このトピックに関連して見つけたのはこれだけです。ここでは、これを行う3つの方法が示されています
。1。「手動で参照を更新する(配管を含む)」;
2.「git push -f
非ベアリポジトリから」;
3." git branch -f this $that
"。
どの解決策がより適切だと思いますか、またはこれを行うために他にどのような方法がありますか?残念ながら、gitbareリポジトリについて私が見つけたドキュメントはかなり貧弱です。
git - git-archive を使用してベア リポジトリからサブモジュールを含めるにはどうすればよいですか
展開スクリプトをセットアップ中です。基本的なプロセスは次のとおりです。
- サーバー上の裸のリポジトリに変更をプッシュする
- 次に、新しいタグに基づいて、リリース用の新しいフォルダーが作成されます。
- git アーカイブを使用して、ファイルをリリース ディレクトリに移動します。
- いくつかの移行スクリプトを実行し、ライブにします (すべてが成功した場合)。
問題は、リポジトリにサブモジュールが含まれていることです。サブモジュールはアーカイブに入れられないため、リリース ディレクトリに入れられません。
git-archive-allを見たことがありますが、ベアリポジトリでは機能しません。
無理なら検討中ですが、
- リポジトリをむき出しにせず、作業コピーを更新すると、git-archive-all を使用できるようになります。または
- サーバー上にサブモジュールの2番目の裸のリポジトリがあり、そこからアーカイブを取得できます(正しいリビジョンを取得していることを確認するには、これを調べる必要があります)。
git - ベアリポジトリと非ベアリポジトリの「実用的な」違いは何ですか?
私はGitのベアリポジトリと非ベア/デフォルトリポジトリについて読んでいます。私はそれらの違いを(理論的には)十分に理解できていません。また、なぜ裸のリポジトリに「プッシュ」する必要があるのかを理解できていません。取引は次のとおりです。
現在、3台の異なるコンピューターでプロジェクトに取り組んでいるのは私だけですが、後でさらに多くの人が関与するため、バージョン管理にGitを使用しています。すべてのコンピューターでベアリポジトリのクローンを作成し、そのうちの1つで変更が完了したら、変更をコミットしてベアリポジトリにプッシュします。私が読んだところによると、ベアリポジトリには「作業ツリー」がないため、ベアリポジトリのクローンを作成すると、「作業ツリー」はありません。
作業ツリーには、プロジェクトからのコミット情報やブランチなどが格納されていると思います。それは裸のリポジトリには表示されません。したがって、作業ツリーを使用してリポジトリへのコミットを「プッシュ」する方がよいようです。
それでは、なぜベアリポジトリを使用する必要があるのでしょうか。実際の違いは何ですか?それはプロジェクトに取り組むより多くの人々にとって有益ではないと私は思います。
この種の仕事のためのあなたの方法は何ですか?提案?
git - gitベアリポジトリの「fetch --all」は、ローカルブランチをリモートブランチに同期しません
git ベア リポジトリを定期的に同期しようとしています。ローカル ブランチは「--track」オプションを使用して作成されています。ここに私の設定があります(不要なものはありません):
「cp」コマンドを使用してローカル ブランチを更新する必要があります。
よりエレガントなソリューションはありますか?
git - 既存のベアリポジトリにreflogs情報を作成する方法
ご存知かもしれませんが、デフォルトでは、gitは新しいベアリポジトリのreflog更新を有効にしません。問題は、長い履歴リポジトリがありますが、フラグ「logAllRefUpdates」をオンにする前に作成されたため、別のアプリケーションでその情報を機能させたいということです。
既存のリポジトリに最小限の変更を加えるだけで、どうすればそれを実現できますか。非常に簡単な解決策は、私がしたくない新しいコミットをプッシュすることです(!):-)