私はgit-new-workdir
以前、1つのgitリポジトリに対して2つの作業ツリーを持っていました。これは通常非常にうまく機能しますが、同じブランチが両方の作業ツリーでチェックアウトされている場合、何かをコミットした後に面白い動作が発生します。
- 私は、きれいな作業ツリーと「マスター」の両方から始めます。
- 作業ツリーAで何かをコミットします。
結果:
- 作業ツリーAの「gitstatus」は「clean」を示しています(予想どおり)
- 作業ツリーBの「gitstatus」に突然「変更をコミットする」と表示されます
表示される変更は、Aで行ったコミットの逆です。たとえば、Aのコミットで行が追加された場合、Bの「コミットする変更」はこの行が削除されたことを示します。
ここで何が起きてるの?これはgit-new-workdirの既知の制限ですか?この問題を回避する方法はありますか?または、両方のコピーで同じブランチがチェックアウトされている間は、チェックインを避ける必要がありますか?
また、ここで内部的に何が起こっているのかを理解することにも興味があります(gitの内部についてはほとんど知りません)。
ノート:
git reset--hard
Aでコミットする前にBにコミットされていない変更がなかった場合、Bで実行するだけで問題を簡単に解決できることがわかりまし
た。
ただし、Bにコミットされていない変更があるときにAでコミットすると、実際のコミットされていない変更がコミットからの偽の変更と混ざり合い、それらを解く簡単な方法がないようです。したがって、質問。