EGit を使用している 2 人の開発者がいます。1 つは Windows で動作し、もう 1 つは Linux で動作します
そして、以下のようにコラボレーションのポリシーを設定します。
- 中央の (裸の) リポジトリがあります
- 最初に、各開発者は中央リポジトリからチェックアウトし、ローカルで作業します。
- 2 つの作業を同期する必要がある場合は、中央リポジトリからプル/プッシュします。
中央リポジトリを使用すると、将来、チーム内のより多くの開発者と簡単にコラボレーションできると考えています。
ある開発者が別のディレクトリに移動したファイルを別の開発者が変更したときに競合がまったくないことを検出するまで、すべてが正常に機能します。手順は次のとおりです。
- ある開発者がファイルを別の場所に移動します。それを彼のローカルリポジトリにコミットします。中央リポジトリにプッシュします。
- もう 1 つは、その (同じ) ファイルの内容を変更します。それを彼のローカルリポジトリにコミットします。中央リポジトリをプルします。
2 番目の開発者が「プル」を行うと、競合レポートが発生することが予想されます。しかし、競合はありません。そして、彼の作業ディレクトリ (およびローカル リポジトリ) に 2 つのファイルが表示されます。
- 彼が改造したもの
- そして、最初の開発者が別のディレクトリに移動したもの。
誰か私たちの間違いを教えてください。
私たちの働き方は git の設計に違反していませんか?
私たちは git を初めて使用します (CVCS には長い間精通しています)。この問題に直面したことで、私たちのチームの作業を統合することが非常に困難になることを意味するため、非常に心配しています。私たちは何か間違ったことをしなければならないと信じています。私たちを明確にしていただきありがとうございます。