1
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?

More than 1 year has passed since last update.

SVNカルチャーからGitカルチャーにマインドチェンジを図るためのメモ(作成中)

Last updated at Posted at 2023-05-28

前提

  • 本記事は、SVNの利用経験はあり、Gitのコンセプトをなんとなく理解できているが、まだGitを使った経験がないエンジニア向けに書かれています。

  • Gitを使いこなしているわけではないので、その点、割り引いて読んでいただけると幸いです。

はじめに

  • Gitは、SVN(Subversion)とは違い、分散型のバージョン管理システムのため、開発者は割り当てられたローカルリポジトリを用いて必要な作業をローカルで行うことができます。このことから、オフラインで作業したり、他の開発者への影響を回避しやすいというGitのコンセプトは理解できていました。

  • しかし、概念的な理解に留まっていたため、実際の運用において注意すべきポイントが何であるか、実際にGitを触れてみて気づいたことをまとめてみました。

GitとSVNの違いは?

  • ブランチ作成粒度(頻度)

 個人的にはここが一番大きいのかなと思っていて、私が過去担当した案件だとSVNの場合1つの機能追加案件で複数の開発者が同時にブランチを共有して開発するケースが一般的でした。
 Gitの場合ブランチ戦略にもよるものの、Redmineにある小さな機能改修レベルであってもブランチを新規作成することを前提とした設計思想をとっているように思えます。(その分ブランチのライフサイクルも短い)

比較表 SVN Git
ブランチ作成粒度 一大作業 こまめに作成
ブランチ内部構造 ファイルコピー(完全なディレクトリ構造) ポインタ(参照)
  • Gitにはリモートサーバ(GitHub等)への変更内容反映に至るまでに3段階ある(SVNは1段階のみ)

 ステージングエリアを設けているのは、反映したくない更新を除外するだと思いますが、都度addが必要なのは少し面倒な気もしています。

段階とコマンド SVN Git
ステージングエリアへの登録 なし1 git add
ローカルリポジトリへの反映 なし git commit
リモートリポジトリへの反映 svn commit git push
  • (TBD)気づきがあれば適宜追加
  1. svn addはバージョン管理対象としての登録に限定した用途でGitのそれとは異なります。

1
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
1
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?