これは Nuance Healthcare の Matt Shelton からのゲスト投稿です。この投稿は、Subversion から Git に移行した彼のチームの話をまとめたシリーズの第 1 回目で、移行した理由や移行の過程で経験した事柄が語られています。Matt は Atlassian Summit 2015 でも、このテーマについて話をしています。このシリーズでは彼の持ち時間の 30 分では話せなかったすべてのみならず、その時の話とは違った側面についても取り上げます。
Maven の依存関係を Git への切り替え時に解決する
そう、Git への移行を進めている私たちが夢中になっているのが git-flow です。ここまで来たら、何もかもテストしてみましょう! 何といっても自慢のチームです。彼らは Confluence にある開発ワークフローのヒット リスト、つまりこれまでのチームの開発をもとにしたすべてのワークフローと、将来取り組む必要が生じる可能性があると考える悩ましいワークフローのすべてをかき集めました。そして、私たちのプロジェクトをミラーリングしたプロジェクト構成 (もちろんコードは一切なし、pom.xml 一本) によって、すべてのワークフローを試してみました。
Git: サーバー サイド フックによる自動マージ (これで決まり!)
エンタープライズ DVCS ワークフローは定着しつつあり、パターンが統合されてきています。Git によって各チームは非常に柔軟に作業できるため、1 つの企業内でもチームによって異なった方法でコードを共有してコラボレーションしている場合があります。
Git フォークとアップストリーム: 仕組みと役に立つヒント
upstream
のリポジトリに対して fork
を常に更新した状態に保つ方法を書いた便利なガイドなら山ほどあり、探せばもっと多く見つかります (エンタープライズ環境で fork を使う理由とは何だろうと考えている場合は、こちらでその理由のいくつかをご確認ください)。このブログでは、フォークと upstream
を相互に結びつける方法について、いくつかの側面から紹介します。基本、了解事項、役に立つヒントなどです。そこでまず、これはいいなと感じたり知りたくなったりするようなことを取り上げます。採用するかはあなた次第です。興味を持っていただけましたか? 続けてお読みください。
コア コンセプト、ワークフロー、ヒント
Git 開発では、サブモジュールによって他のプロジェクトを自分のコードベースに取り込んで、その履歴は切り離したまま自分のプロジェクトの履歴と同期できるようになります。これはベンダー ライブラリや依存関係の問題を解決する便利な方法です。git
に関してはいつもそうですが、このアプローチもかなりクセがあるためうまく使えるようになるには少しばかりの学習が必要です。サブモジュール
に関する役に立つ詳細な説明は既に公開されているので、ここで繰り返すのは控えます。この記事では、この機能を最大限に活用するのに役立つ面白い情報をいくつか共有したいと思います。
Git チームのワークフロー: マージかリベースか
質問は簡単です。git
とフィーチャー ブランチを利用しているソフトウェア チームにとって、完了済みの作業を開発のメインラインに取り込む最も優れた方法は何でしょうか。これはそれぞれ強い主張を持つ両陣営が何度も繰り返している議論の一つですが、落ち着いた話し合いが時として難しくなる場合があるものです (激しい議論が交わされた他の例については、インターネットをご覧ください)。
プルリクエストに習熟する: さまざまなフェッチ機能の紹介
最近では、プロジェクトの修正はフォークの作成と同じくらい簡単になりました。プロジェクトを完全にリモート コピーして、一瞬で作業用のフォークを作成できるように、変更するファイルを選択して編集を押し、修正をコミットすれば、プロジェクトを修正できます。
git とプロジェクトの依存関係
次の質問を考えてみてください。プロジェクトの依存関係を git
でどう処理していますか。私たちのプロジェクトは互いに依存関係にある複数のリポジトリから構成されています。今はそうしたリポジトリを svn:externals
で管理しています。これを git
で処理する最適の方法は何でしょうか。git によって非常に大きなリポジトリを小さなコンポーネントに分割するにはどうすればよいでしょうか。これは最近行った Git を正しく理解する ツアーのヨーロッパ レグで、最もよく出された質問を例としていくつかあげたものです。
Git のワークフローでシンプルに
数多くのチームが既に git
に移行しているだけでなく、さらに多くのチームが現在移行中です。個々の開発者を訓練して git の採用をサポートする優秀な人材を任命するだけでなく、物事が複雑になりすぎないように適切で簡単なコード コラボレーション手法を選ぶことが欠かせません。Git
の場合は、非常に複雑なワークフローをあっという間に作り出すことが実際に可能です。私はそうしたワークフローをじかに見てきました。
チームが Git を使っていなくても Git を使う: git-svn を活用するコツ
アトラシアンに入社する前に取り組んでいたさまざまなプロジェクトでは、まだ Subversion (SVN) をバージョン管理システムとして使用していました。私は何年も前に Git に移行したので、できるだけ Git を使い続けたいと思っていました。