5

Eclipse + egit を使用してメイン ブランチに変更をコミットするための推奨される手順は何ですか?

私は長い間 Eclipse と svn を使用しており、そこではすべてが美しく機能します。変更をコミットしようとするときはいつでも、私のフローは次のとおりです。

  • ワークスペースと同期する
  • 競合を探す
  • 競合が見つかった場合は、手動でマージしてから、ファイルをマージ済みとしてマークします
  • アップデート
  • 専念

コミットせずにファイルのグループをコミットしようとするまれなケースでは、それについて警告され、変更を適切に修正できます。

競合しているファイルを更新した場合でも、そこから回復するのは悪くありませんが、最初にワークスペースと同期して競合のあるファイルを特定してマージする方が、競合のために失敗した更新後にマージを試みるよりもはるかに優れたフローであることがわかりました.

egit では、私が試したフローは正しく機能しませんでした。まず、誤ってサーバーからプルを実行して競合が発生した場合、競合があったと言われますが、それについて非常に混乱しています。サーバーから最新のものを取得するのに苦労し、ファイルをコミットできないことがわかりました。どれだけ同期しても。私のファイルを最新のものに置き換えて、別のプルを実行してからコミットしても、もはや機能していないようです。

svnで使用したのと同じアプローチ(最初に同期し、競合のあるファイルを手動でマージする)に従って、2番目にプルを実行しても、ファイルをマージ済みとしてマークしたことが考慮されていないかのように、上記と同じ失敗が発生します為に。

それで...白紙の紙、私がいくつかの変更を加えたときの推奨される指示は何ですか、それらをサーバー上の最新のコードとマージしたい(これには私の変更セットと競合するファイルの変更が含まれる可能性があります)、およびオプションで、私の変更をコミットしますか?この種の問題について議論しているチュートリアルがある場合は、適切な egit チュートリアルへのポインタで問題ありません。

4

1 に答える 1

7

あなたの質問を正しく理解できたかどうかわかりません。しかし、私は今、あなたにいくつかのヒントを与えようとしています。最近、当社のリポジトリを CVS から git に変換しましたが、これは、あなたが対象としている同じ問題に焦点を当てた多くの質問があったため、非常に困難でした。

まず最初に、SVN や CVS から来ると、おそらく何年も前に行っていたようなワークフローを実行することはできなくなると言わざるを得ません。

特に、小さなファイルのセットで作業し、同期を介してそれらのみを更新することは、git では機能しません。これは、(サーバーから最新のものを取得するという点で) Git と同期するときに実行する手順です。

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

それが私のワークフローです。それが正しい方向である場合は、なぜ私が行っているようにいくつかの手順を実行するのか、また egit を使用してそれらを実行するのが最善の方法であると考える方法について、詳細を追加できます。

于 2013-08-05T05:52:47.683 に答える