Gitを使い始めたとき、「あれ?SVNと同じ名前だけど動きが違う…?」と感じたことはありませんか? GitとSVNはどちらもバージョン管理システムですが、仕組みや操作の考え方が根本的に違うため、同じような用語でも意味が異なることがあります。
この記事では、SVN経験者がGitを使うときに混乱しやすい用語や操作を、実際のメニュー項目に沿って整理してみました!
- 🧬 クローン(Clone)≠ SVNのチェックアウト
- 🔁 チェックアウト(Checkout)≠ SVNのチェックアウト
- 📥 フェッチ(Fetch)= SVNのupdateに近いけど…
- 🔄 プル(Pull)= SVNのupdateに近い
- 🚀 プッシュ(Push)≠ SVNのコミット
- 📝 コミット(Commit)= ローカルの履歴保存
- 🌿 ブランチ(Branch)≠ SVNのブランチ
- 🧳 スタッシュ(Stash)= SVNにはない便利機能!
- 🌐 リモート(Remote)= SVNのリポジトリURLに近い
- ✏️ 変更(Changes)= SVNの「未コミットの変更」
- 🔃 プル・プッシュ(Pull, Push)= 一連の同期操作
- 🏷️ タグ(Tag)= SVNのタグと似てるけど軽量
- 🌲 ワークツリー(Worktree)= SVNにはない高度な機能
- 🧭 まとめ
🧬 クローン(Clone)≠ SVNのチェックアウト
SVNでは「チェックアウト(checkout)」が最初の操作でしたが、Gitでは「クローン(clone)」がそれにあたります。 ただし、Gitのクローンはリポジトリ全体(履歴含む)を丸ごとコピーする点が大きな違い!
git clone https://github.com/example/repo.gitSVNのチェックアウトは「最新の状態だけを取得」するのに対し、Gitのクローンは完全な履歴付きのローカルリポジトリを作成します。
🔁 チェックアウト(Checkout)≠ SVNのチェックアウト
SVNでの「checkout」はリポジトリを取得する操作でしたが、Gitではブランチやコミットを切り替える操作です。
git checkout feature/loginつまり、Gitのcheckoutは作業対象の切り替えに使うもので、SVNのcheckoutとはまったく別物!
📥 フェッチ(Fetch)= SVNのupdateに近いけど…
git fetchは、リモートの最新情報を取得するだけの操作です。 SVNのupdateに似ていますが、Gitではローカルの作業ブランチには影響しません。
git fetch origin取得した内容を反映させるには、別途mergeやrebaseが必要です。
🔄 プル(Pull)= SVNのupdateに近い
git pullは、fetch+mergeを一度に行う操作で、リモートの変更をローカルに反映します。 SVNのupdateに最も近い操作ですが、Gitではマージの衝突(コンフリクト)が起きやすいので注意!
git pull origin main🚀 プッシュ(Push)≠ SVNのコミット
SVNではcommitするとすぐにリモートに反映されましたが、Gitではローカルにコミット → プッシュでリモートに反映という2段階です。
git commit -m "修正"
git push origin mainこの違いが、Gitの「分散型バージョン管理」の特徴でもあります。
📝 コミット(Commit)= ローカルの履歴保存
Gitのcommitは、ローカルの履歴に変更を記録する操作です。
SVNのcommitとは違い、他の人にはまだ見えません。
🌿 ブランチ(Branch)≠ SVNのブランチ
SVNのブランチは「ディレクトリのコピー」でしたが、Gitのブランチは履歴の分岐です。 Gitではブランチの作成・切り替えがとても軽量で高速!
git branch feature/new-ui
git checkout feature/new-ui🧳 スタッシュ(Stash)= SVNにはない便利機能!
作業中の変更を一時的に退避して、あとで復元できる機能です。 SVNにはないGit独自の便利機能で、「ちょっと別の作業をしたいけど、今の変更は残したい!」というときに大活躍!
git stash
# 作業後に復元
git stash pop🌐 リモート(Remote)= SVNのリポジトリURLに近い
Gitでは、リモートリポジトリをoriginなどの名前で登録して管理します。 複数のリモートを使い分けることも可能です。
git remote -v✏️ 変更(Changes)= SVNの「未コミットの変更」
Gitでも、ファイルを編集すると「変更」として検出されます。 ただし、Gitではステージング(add)→コミットという2段階の流れになります。
🔃 プル・プッシュ(Pull, Push)= 一連の同期操作
GUIツールでは、pullとpushをまとめて実行できるボタンが用意されていることがあります。 SVNのように「更新してからコミット」する流れを再現したいときに便利です。
🏷️ タグ(Tag)= SVNのタグと似てるけど軽量
Gitのタグは、特定のコミットに名前をつける機能です。 SVNのタグはブランチと同じくディレクトリコピーでしたが、Gitでは履歴上のラベルとして扱われます。
git tag v1.0.0🌲 ワークツリー(Worktree)= SVNにはない高度な機能
1つのリポジトリから複数の作業ディレクトリを作成できる機能です。 複数のブランチを同時に作業したいときに便利!
git worktree add ../別ディレクトリ ブランチ名🧭 まとめ
| 用語 | SVNでの意味 | Gitでの意味 |
|---|---|---|
| Checkout | リポジトリを取得 | ブランチや履歴の切り替え |
| Commit | リモートに反映 | ローカルに記録 |
| Update | 最新を取得して反映 | pull(fetch+merge) |
| Branch | ディレクトリコピー | 履歴の分岐 |
| Tag | ディレクトリコピー | 履歴へのラベル付け |


コメント