5

merge裸のレポに入れられないのはなぜですか? HEADベア リポジトリには、または作業ツリーがありません。構成ファイルには、bare=true.

また、裸のレポではできませんpull(pull = fetch & merge and merge が機能しないため)。ただし、裸のレポにプッシュすることはできます。なぜでしょうか? 私の知る限り、 にpushもマージが含まれていますが、この場合はうまく実行できます。

ですから、「git merge はどのように機能するのですか?」という質問になるかもしれません。なぜそれが必要なのHEADですか?マージするときは何をしていますか?

4

1 に答える 1

1

Chronial が指摘しているように、プッシュは早送りマージまたは強制更新を行い、参照/ブランチ ポインターを別のコミットに移動するだけです。

実際の非早送りマージでは、解決する必要がある競合が発生した場合に備えて、作業コピーが必要です。他のスタック オーバーフロー ユーザーによって以前に言及されています。たとえば、この回答を参照してください(強調は私のものです):

git は、作業ツリーですべてのマージ操作 (実際のマージ、チェリー ピック、リベース、パッチ適用) を実行します。これは、知識豊富な Jakub Narębski の回答の 1 つなど、以前に何度か言及されています。

作業ディレクトリ (および/またはインデックス) を使用して解決する必要があるマージの競合が存在する可能性があるため、作業ディレクトリ (および/またはインデックス) に触れずにマージ (またはリベース) を機能させる方法はありません

于 2013-08-29T01:56:45.827 に答える