2013-08-04 12 views
5

Eclipse + egitでメインブランチへの変更をコミットするための推奨手順は何ですか?ファイルをマージして、egitとEclipseを使ってファイルをコミットするには?

私はEclipseとsvnを長年使っており、すべてが美しく機能しています。私は変更をコミットしようとしていますたびに、私の流れは以下の通りです:

  • 競合が検出された場合、手動でマージ競合
  • のためのワークスペース
  • 表情と同期して、合併
  • アップデートとしてファイルをマーク
  • 私はコミットせずにファイルのグループをコミットしようとするとまれに

をコミットし、私ができることについて警告しています変更をうまく修正してください。

競合しているファイルを更新しても、最初にワークスペースと同期して競合が発生したファイルを特定してマージするのは、更新後にマージしようとするよりもはるかに優れています紛争のために失敗した。

私は適切に動作しようとしました。まず、サーバーからのプルを誤って実行した場合、競合が発生していると言われていますが、非常に混乱しています。サーバーから最新のものを取得するのは難しく、ファイルをコミットすることができないどんなに同期していても。私のファイルを頭から最新のものに置き換えて、別の引き出しをしてコミットしても、もう動作しないようです。

私はsvn(最初に同期し、手動でファイルをコンフリクトでマージする)と同じアプローチに従っても、プルで2番目に従っても、マージされたファイルにマークを付ける場合と同じです説明されていませんでした。

なので、私はいくつかの変更を加えたときに推奨される指示で、サーバー上の最新コードとマージしたい(ファイルの変更が自分の変更のセットと競合する可能性があります)任意で、私の変更をコミットしたいですか?良いegitチュートリアルへのポインタは、この種の問題について議論している人がいればうまくいきます。

答えて

7

私はあなたの質問を正しく理解しているか分かりません。しかし、私は今あなたにいくつかのヒントを与えようとしています。私たちは最近CVSからCVSへのリポジトリをgitに変換しました。これはあなたがターゲットにしているのと同じ問題に焦点を絞って多くの質問を投げかけてきたので、かなり困難でした。

まず最初に、私はSVNやCVSからあなたが多分数年間あなたのワークフローを行うことはできないと言わなければなりません。

特に、小さなファイルセットで作業していて、同期を使ってファイルを更新するだけでは、gitでは動作しません。ここでは、私たちのgitと(サーバーから最新のものを得るという点で)同期するときに取る手順を示します。

  1. 私はコミットします。早いコミットはあなたに多くの苦痛を救うものです!リモートリポジトリと同期するときに保留中の変更がないようにしてください。そうすれば、かなりの数の痛みを招く可能性があります。
  2. フェッチします。たとえば、アクションをツールバーに配置したり、ショートカットを作成したりすることができます。これにより、フェッチが非常に快適になります。
  3. フェッチの結果がダイアログに表示されます。私は変化を研究します、これは私が思うように、これをegitで行うための最善のポイントです。すべてのコミットメッセージを読むことができ、バックグラウンドでコミットを開くためにダブルクリックして差分を調べることもできます。はい、このダイアログはモーダルではありませんので、2番目のモニタで移動できます。
  4. 私はリベースを行います。マージに似ていますが、一時的な開発を開始した時点からの情報は残しません。これは私の会社が作り出したデザインの一種です。マージよりもリベースを優先しています。
  5. 競合が発生した場合は、マージツールを使用して問題を解決できます。これは、CVSとの同期化と非常によく似ています。それが新しいmark as mergedであるのでAdd to indexをすることを忘れないでください。その後、rebaseを行った場合はRebase > Continueを実行する必要があります。
  6. 私はプッシュします。その間に誰もプッシュしなければ、それはそれです。

これは私のワークフローです。それが正しい方向であれば、なぜ私はいくつかのステップをやっている理由と、どのように私が最良の方法を彼らがegitでやっていると思うかについて詳細を追加することができます。

+0

チェックアウト競合を克服する方法を教えてください。http://stackoverflow.com/questions/18050220/eclipse-egit-checkout-conflict-with-files-egit-doesnt-want-to-continue未来のために私は学んだ、私はフェッチする前にコミットする必要があります。 –

+1

はい、私はそれを見てみましょう。数分かかるかもしれません;-) しかし、この問題は同期の前にコミットするのが良いアイデアの1つです。 gitは、あなたがその方法でそれを公開したくない場合には、後でそのコミットに対処する可能性をたくさん与えます。 –

+0

多くの可能性は最初は混乱しています。パスを知る必要があります。 –

関連する問題