0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Git怖くないシリーズその1(全5回):Gitへのパラダイムシフト

Posted at
1 / 12

CVS/SVNとの違い(1/2)

  • CSV/SVNは集中
  • Gitは分散
    • リポジトリはどこにでも置ける(開発PC/サーバ)
    • 通常はマスターとなるリポジトリをサーバに置く
      ※GitHubはGitリポジトリのホスティングサービス

CVS/SVNとの違い(2/2)

  • CVS/SVNはファイル単位での履歴管理
  • Gitはプロジェクト全体での履歴管理

個人的にはこの違いに最もとまどった!


Gitの特徴

  • SVNのチェックアウトに相当する機能はない
    ※checkoutという操作はあるが、SVNとは機能が異なる
  • 簡単に衝突する
    →Gitではマージが日常的に発生します!

重要な機能・コミット

  • プロジェクトの状態を記録する
  • Gitは乱暴に言えばコミットの集合体
  • コミットには前後関係がある

重要な機能・ブランチ

  • ある状態から派生した別のコミットの集合
  • まさに、枝分かれのイメージ
  • 開発はブランチをうまく使って進めていく

典型的なブランチ戦略の概要

  • アプリの「正」となる状態のブランチを1つ定める
    mainと名付けることが多い
  • 開発者はタスク毎にmainから派生したブランチを作り、そこで作業する
  • 開発が完了したら、管理者がmainに開発用ブランチをマージする
    GitHubはプルリクエスト、GitLabはマージリクエストを作成する

ブランチ戦略の利点

  • 開発者用のブランチは開発者の自由!
    • いつでもコミットできるので、セーブポイントを作れる
    • 実験するときなど、自分のブランチを更に派生させられる
  • ブランチ同士を比較することで差分比較が簡単
  • ネットワークがない状態でも作業可能
    基本的にはローカルPCにも全履歴が保持されるため

マージ

  • Gitにはmergeというコマンドがあり、別のブランチの修正を取り込むことが可能
  • 同じファイルに修正が入っている場合・・・
    • 同一行でなければ自動でうまいことマージ
    • 同一行に修正があった場合は衝突。この場合は手動で解決する必要あり

ここで疑問が生じませんか?

・・・そんなにマージが頻繁に起きるの、怖くない?


怖いです!!


最後に

  • 次回はマージの対する考え方を話します
  • 確実に言えるのは、Gitは大規模開発の運用でも有用 ということ
    LinuxのソースコードはGit管理されています!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?