Sourcetree
バージョン管理ツール
Sourcetree
概要
Sourcetreeは、Atlassianが開発する無料のGitおよびMercurial用GUIデスクトップクライアントです。2011年にリリースされ、コマンドライン操作を視覚的なインターフェースで置き換えることで、バージョン管理の学習コストを大幅に削減します。Windows・macOS対応で、Git-flow、Git LFS、interactive rebaseなど高度な機能も一クリックで実行可能。AtlassianエコシステムのBitbucket、Jiraとの緊密な統合により、チーム開発での生産性向上を実現します。プログラミング初心者からベテランまで幅広く支持され、特にGitの概念理解や複雑なブランチ構造の可視化において優れた教育的価値を提供します。
詳細
Sourcetree 2025年版は、2%のマーケットシェアでGitの視覚的操作を提供する代表的なGUIクライアントとして地位を確立しています。Qt/C++フレームワークによる高性能なネイティブアプリケーションとして実装され、大規模リポジトリでも軽快な動作を実現。Atlassian製品らしく、Bitbucket Cloud/Server、Jira Software、Confluence、Bamboo CI等との統合機能を標準搭載しています。Git-flowワークフローの標準サポート、ドラッグ&ドロップによる直感的なブランチ操作、リッチなグラフィカルコミット履歴、内蔵差分・マージツールにより、コマンドライン習得前でも本格的なバージョン管理を実践できます。
主な特徴
- 初心者向けの使いやすさ: 直感的なGUIによる学習コストの削減
- 包括的なGit機能: ブランチ、マージ、リベース、チェリーピックを視覚的に操作
- Atlassian統合: Bitbucket、Jiraとのシームレスな連携
- Git-flowサポート: 標準的なブランチワークフローの自動化
- クロスプラットフォーム: Windows・macOSでの一貫した操作体験
- リッチなビジュアル: グラフィカルなコミット履歴とブランチ構造表示
メリット・デメリット
メリット
- 2%のマーケットシェアでGUIを好む開発者に継続支持
- 初心者開発者やGitコマンド学習中の開発者に理想的
- Atlassian エコシステムとの優れた統合性
- 無料で商用利用も可能な充実した機能セット
- Git-flowやGit LFSなど高度な機能の簡単な利用
- 豊富なチュートリアルと学習リソース
デメリット
- コマンドライン操作の習得機会が減る可能性
- 大規模プロジェクトや複雑な操作でのパフォーマンス制約
- 細かいGit操作の制御がCLIほど柔軟でない
- アップデート頻度がGitの進化に追いつかない場合がある
- GitHubやGitLabとの統合は Bitbucket ほど深くない
- プロ向けの高度なカスタマイズオプションの限定性
参考ページ
- Sourcetree 公式サイト
- Sourcetree ドキュメント
- Atlassian Git チュートリアル
- Sourcetree Community
- Git-flow with Sourcetree
書き方の例
Sourcetreeのインストールと初期設定
# Windows環境
# 1. https://www.sourcetreeapp.com/ からダウンロード
# 2. インストーラーを実行
# 3. Atlassianアカウントでサインイン(推奨)
# macOS環境
# 1. App Store または公式サイトからダウンロード
# 2. アプリケーションフォルダにドラッグ&ドロップ
# 3. 初回起動時にセットアップウィザード
# 初期設定
# Tools → Options (Preferences on Mac)
# - 名前とメールアドレス設定
# - SSH鍵の設定
# - 外部ツール(エディタ、差分ツール)の設定
# - プロキシ設定(企業環境)
リポジトリのクローンと作成
# 新しいリポジトリのクローン
# 1. "Clone" ボタンをクリック
# 2. リポジトリURL入力:
# - GitHub: https://github.com/user/repository.git
# - Bitbucket: https://bitbucket.org/user/repository.git
# - GitLab: https://gitlab.com/user/repository.git
# 3. ローカルパスを選択
# 4. "Clone" 実行
# ローカルリポジトリの作成
# 1. "Create" ボタンをクリック
# 2. "Create Local Repository" 選択
# 3. フォルダパスを指定
# 4. リポジトリ名を入力
# 5. Git リポジトリタイプを選択
基本的なGit操作
# ファイル変更とステージング
# 1. "Working Copy" タブで変更されたファイルを確認
# 2. ファイルを選択してステージング領域にドラッグ
# 3. または "Stage All" / "Stage Selected" ボタン使用
# 4. Unstaged Files → Staged Files への移動
# コミット実行
# 1. ステージされたファイルを確認
# 2. 下部の "Commit Message" 欄にメッセージ入力
# 3. "Commit" ボタンをクリック
# 4. オプション:
# - "Push changes immediately to origin/main"
# - "Amend latest commit"
# ファイル履歴の確認
# 1. ファイルを右クリック
# 2. "Log Selected..." を選択
# 3. そのファイルの変更履歴を時系列表示
# 4. 各コミットでの差分を視覚的に確認
ブランチ操作とGit-flow
# 新しいブランチの作成
# 1. 左側のブランチパネルで右クリック
# 2. "New Branch..." を選択
# 3. ブランチ名を入力(例:feature/user-authentication)
# 4. "Create Branch" をクリック
# Git-flowの初期化
# 1. Repository → Git-flow → Initialize Repository
# 2. ブランチプレフィックスを設定:
# - Master branch: main
# - Develop branch: develop
# - Feature prefix: feature/
# - Release prefix: release/
# - Hotfix prefix: hotfix/
# - Support prefix: support/
# Git-flowでの機能開発
# 1. Repository → Git-flow → Start New Feature
# 2. 機能名を入力(例:user-login)
# 3. feature/user-login ブランチが自動作成・チェックアウト
# 4. 開発完了後:Repository → Git-flow → Finish Feature
# ブランチのマージ
# 1. マージ先ブランチ(例:main)をチェックアウト
# 2. マージ元ブランチ(例:feature/user-login)を右クリック
# 3. "Merge feature/user-login into current branch" 選択
# 4. マージオプション選択:
# - Create merge commit
# - Fast-forward if possible
# - Squash commits
Bitbucket統合機能
# Bitbucketリポジトリとの連携
# 1. Repository → Repository Settings
# 2. "Remotes" タブでリモートURL確認
# 3. Bitbucketアカウントでのプッシュ・プル
# プルリクエストの作成(Bitbucket連携)
# 1. Actions → Create Pull Request in Bitbucket
# 2. ブラウザでBitbucketが開き、PR作成フォーム表示
# 3. タイトル、説明、レビュアーを設定
# 4. "Create Pull Request" で作成
# Jira課題とのリンク
# 1. コミットメッセージに課題キー含める
# 例:PROJ-123 #resolve Fix user login bug
# 2. Repository → Repository Settings → Issue tracker
# 3. Jira設定でコミット・PR自動リンク
高度な操作:Interactive Rebase
# Interactive Rebaseの実行
# 1. コミット履歴でリベース開始点より古いコミットを右クリック
# 2. "Rebase children of [commit] interactively..." 選択
# 3. リベースウィンドウで操作選択:
# - Pick: コミットをそのまま適用
# - Squash: 前のコミットと統合
# - Edit: コミット編集
# - Drop: コミット削除
# 4. 順序をドラッグ&ドロップで変更可能
# 5. "Start Rebase" で実行
# コンフリクト解決
# 1. マージ・リベース時にコンフリクトが発生した場合
# 2. "Actions" パネルに "Resolve Conflicts" ボタン表示
# 3. 外部マージツール起動(設定済みの場合)
# 4. またはSourcetree内蔵エディタで解決
# 5. 解決後 "Mark Resolved" → "Continue Rebase"
Git LFSとSubmodules管理
# Git LFS設定
# 1. Repository → Repository Settings
# 2. "LFS" タブを選択
# 3. "Initialize LFS" ボタンをクリック
# 4. ファイルパターンを追加:
# - *.psd(Photoshopファイル)
# - *.mp4(動画ファイル)
# - *.zip(アーカイブファイル)
# 5. .gitattributes ファイルが自動更新
# Submodule追加
# 1. Repository → Add/Link Submodule
# 2. Submodule URL入力
# 3. ローカルパス指定
# 4. "Add Submodule" 実行
# Submodule更新
# 1. サブモジュールフォルダを右クリック
# 2. "Update Submodule" 選択
# 3. または "Actions → Submodule → Update All"
チーム開発ワークフロー
# 日常的な同期作業
# 1. 作業開始時:
# - Repository → Pull(最新変更取得)
# - または Fetch → Merge
# 2. 作業終了時:
# - すべての変更をコミット
# - Repository → Push(変更をアップロード)
# ブランチ戦略の可視化
# 1. グラフィカルログで全ブランチ構造確認
# 2. View → Show All Branches
# 3. ログビューでのフィルタリング:
# - Author filter(作者別)
# - Date range filter(期間別)
# - Branch filter(ブランチ別)
# チェリーピック
# 1. 必要なコミットを右クリック
# 2. "Cherry Pick..." を選択
# 3. 適用先ブランチを確認
# 4. "Cherry Pick" 実行
# タグ管理
# 1. Tags ペインで新規タグ作成
# 2. 特定コミットを右クリック → "Tag..."
# 3. タグ名とメッセージを入力
# 4. Annotated Tag(注釈付き)か Lightweight Tag選択
カスタマイズと環境設定
# 外部ツール設定
# Tools → Options → Diff
# - External Diff Tool:
# - Beyond Compare
# - WinMerge (Windows)
# - FileMerge (macOS)
# - Visual Studio Code
# Tools → Options → Merge
# - External Merge Tool:
# - P4Merge(無料、推奨)
# - KDiff3
# - Tortoisemerge
# エイリアス設定
# 1. Repository → Repository Settings
# 2. "Advanced" タブ
# 3. Repository-specific settings:
# - user.name
# - user.email
# - core.autocrlf (Windows)
# ログ表示のカスタマイズ
# View → Log Options
# - Show all branches
# - Compact log display
# - Show relative dates
# - Custom date format
# テーマとアピアランス
# View → Theme
# - Light theme
# - Dark theme (サポートされている場合)
# - Custom color schemes
トラブルシューティング
# よくある問題と解決法
# 1. SSH接続の問題
# Tools → Options → General → SSH Client Configuration
# - Use system SSH client
# - Use internal SSH client
# - SSH鍵のパス確認
# 2. 認証の問題
# Repository → Repository Settings → Remotes
# - HTTPSからSSHへの変更
# - Personal Access Tokenの使用
# 3. 大きなリポジトリのパフォーマンス
# View → Log Options
# - Limit history to: 100 commits
# - Enable Git log caching
# 4. マージコンフリクトが複雑な場合
# Actions → Launch External Merge Tool
# または
# Terminal → 手動でgit mergetoolコマンド
# 5. Sourcetreeの動作が重い場合
# - Working copy refresh: Manual
# - Git log graph: Simplified
# - Repository browser: 無効化
スクリプトとオートメーション
# カスタムアクション設定
# Tools → Options → Custom Actions
# 例:ESLint実行アクション
# - Menu Caption: "Run ESLint"
# - Script to run: npm run lint
# - Parameters: $REPO
# - Show Full Output: チェック
# 例:テスト実行アクション
# - Menu Caption: "Run Tests"
# - Script to run: npm test
# - Parameters:
# - Run in separate window: チェック
# Hook設定
# Repository → Repository Settings → Hooks
# - pre-commit hook: コード品質チェック
# - commit-msg hook: コミットメッセージ検証
# - pre-push hook: テスト実行
# PowerShell/Bash連携(Windows/Mac)
# Tools → Options → Terminal
# - Terminal application:
# Windows: PowerShell, Command Prompt, Git Bash
# macOS: Terminal, iTerm2