0

私はネットワーク ドライブに裸のレポを持っており、2 つのクライアントがそれぞれの PC に php プロジェクトを複製しています。これらはすべて TortoiseGIT で動作します。

クライアント A とクライアント B が同じリビジョン コピーを持っているとします。

  1. A index.php に変更を加えます。
  2. 自分のリポジトリにコミットしてから、ベア リポジトリにプッシュします。

ただし、クライアント B のプロジェクト フォルダーでは、変更されたファイルは引き続き更新として作成されます (緑色のアイコンにチェックマークが付きます)。

とにかく、クライアント B は TortoiseGIT からオーバーレイ アイコンをリアルタイムで通知または変更しますか?

クライアントが作業を開始する前に git fetch コマンドを実行してログを表示する必要があるためです。

後で競合を解決する代わりに、作業を開始する前に git merge することができます。

4

1 に答える 1

2

GIT は分散バージョン管理システムです。これは、各ローカル リポジトリが独立して動作できることを意味します。フェッチ、プル、またはプッシュを実行する場合にのみ、別のリポジトリに接続します。

ローカル リポジトリは、fetch または pull によって明示的に通知されない限り、構成されたリモート リポジトリの実際の状態を気にしません。やりたいことをGITで実現する方法はありません。
フック (ベア リポジトリ内) とスクリプト (各開発者マシン内) を組み合わせることでこれを実現できますが、私はそれをお勧めしません。


ところで: SVN などのほとんどの集中型バージョン管理システムでは、これはまったく同じように機能します。サーバーのバージョンが変更されたことを作業コピーが認識する前に、更新を行う必要があります。

于 2013-04-22T07:17:09.387 に答える