2012-04-04 11 views
9

対Eclipseの「Gitのリポジトリの視点EGit)、そして「Team Synchronizing」パースペクティブ(私はEEディストリビューションの一部であったと思っています)があります。「チームの同期」

私が知る限り、Gitリポジトリ(GitHubを使用)、または少なくともほとんどの機能を利用することができました: 'Git Staging'ウィンドウが正常に動作しています。 'Unstaged changes'から 'Staged changes'にファイルをドラッグし、Commitアイコンをクリックしてコミットします。次に、私はGit Repositoriesウィンドウから自分の変更をプッシュすることができます。ワークスペース - >リモート - > origin-> urlを右クリックして、メニューからプッシュを選択します。 「チームの同期の視点で

、私もそれを設定するには運ですよん。メニューの「同期...」を選択すると、Gitはテーブルを表示します(それは何ですか?)。私は目的地のためにさまざまな値を試しています(それ以外の場合は[完了]ボタンを押すことはできません)。しかし、私が何をするにしても、私のすべてのプロジェクトに対して「変更なし」と言います。

また、プロジェクトを右クリックして「チーム」を選択すると、多くのコンテキストメニュー項目があります。これは何? 「チームの同期」の視点は、リモート1でローカルリポジトリを同期するためのものである私の理解から

答えて

4

CVSでは、チームの同期は、着信および発信の変更を管理する唯一の純粋な方法です。受信した変更を更新/マージし、この1つのビューから送信された変更をコミットできます。すべてのコミットは離散的で非アトミックなので、このワークフローではビューは正常です。 EGitで

は、しかし、あなたはすでに、追加、コミット、押し、引っ張り、マージのための明示的なアクションを持っています。したがって、チームの同期は、通常のワークフローの外にあります。それはパッチからの栄光のような同期のように振る舞います。あなたは自分の作業ディレクトリを比較したいブランチを選び、その違いを表示します。これらの変更を一括して適用することも、個別に適用することもできますが、コンテキストを取得することはありません。つまり、マージポイントなどを作成することはありません。

例外的な理由を除いて、使用しないように訓練する必要があります。たとえば、おそらく、あなたは2つのブランチA & Bを持っているかもしれません。誰かがBへの変更をコミットし、あなたはそれのほんの一部だけを必要とするので、Team Syncを使用してdiffを表示し、必要なものを適用することができます。あるいは、ブランチBのすべての変更をスカッシュして、それらをAで1回だけコミットしたいと思うかもしれません。そして、Bをとにかくトスするつもりなら、 。

3

は、「Gitのリポジトリ」の視点は、ローカルのGitリポジトリへの作業ディレクトリからファイルをコミットするためのものです。

SVNを使用した場合、「チームの同期」の視点は、ファイルを更新/コミットのためだったので、私は、同様に最初で、これが混乱発見しました。 EGitのTeam syncパースペクティブでは、commit/updateボタンを表示するのではなく、2つのGitリポジトリを同期させるプル/プッシュボタンがあります。 「チーム」コンテキストメニューの下に表示され、様々なオプションについては

、彼らはGitの操作の束に対応しています。 EGitを使う前に、Gitの動作原理についていくつかお読みください。 http://git-scm.com/docはいいスタートです。