2017-05-25 3 views
1

サブモジュールリポジトリもあるローカルリポジトリを持っています。私がサードパーティツールをEclipseの2つの異なるインスタンスからリポジトリにアクセスしようとすると、そのEclipseリポジトリが最初の3番目のEclipseパーティツールで使用されている場合、サードパーティのツールですか? gitが第2のサードパーティのツールを制限する方法を制限していない場合。ユーザーはすべてのサードパーティのツールで同じです。既に使用中の場合は、gitリポジトリをロックしてください

+0

同じリポジトリを使用して複数のEclipseインスタンスが必要なのはなぜですか? – Schwern

答えて

0

はい、Gitは同じリポジトリに同時に書き込む複数のプロセスに対して保護します。

ロックファイルを使用します。 .git/index.lockは、git addの間にインデックス(別名ステージングエリア)をロックします。 .git/HEAD.lockgit commitの間にHEADをロックします。 .git/refs/heads/masterは、移動しているときにマスターブランチをロックするなどです。他のプロセスは、必要なリポジトリが利用可能になるまで待機します。

多くのプロセスは同時に安全に読み取ることができるため、多くのプロセスでgit logまたはgit diffを同時に実行することができます。

ほとんどのGitコマンドは、あなたが気付かないほど速いです。

+0

チェックアウト操作で.git/index.lockが作成されるのはなぜですか?問題1つのインスタンスがファイルの特定のコミットをチェックアウトしようとしています。同時に、別のインスタンスが同じファイルの別のコミットをチェックアウトしようとしています混乱を招きます。このシナリオに対する解決策はありますか? –

+0

@RenganathanSelvarajuその場合、1つのリポジトリを共有する複数の作業ツリー(つまりチェックアウト)を作成するには、['git-worktree'](https://git-scm.com/docs/git-worktree)を実行します。各インスタンスは独自のワークツリーを使用します。あるいは、複数のクローンを持つこともできます。 – Schwern

関連する問題