タイトル: gitの導入
SEOタイトル: NetBeans に git を導入する手順 — プラグイン有効化、リポジトリ Clone、Commit / Push / Pull、SSH 鍵設定
| この記事の要点 |
|
NetBeans の Git 連携
NetBeans は Oracle 時代から Git クライアントを標準同梱しており、Apache NetBeans (12+) でも Apache Git Support として最初から有効化されています。JGit (Pure-Java の Git 実装) ベースのため、コマンドラインの git がインストールされていなくても動作します。
プラグイン状態の確認 / 有効化
すでに有効ならそのまま使えます。グレーアウト・無効化されている場合は以下の手順で有効化します。
- メニュー: Tools → Plugins
- Installed タブを開く
- 名前列で 「Git」 を探す (Apache NetBeans 12+ では「Git」「Git Hooks」など複数)
- チェックボックスを ON にして Activate
- 古い 8.x で表示されない場合は Available Plugins タブから検索してインストール
- 必要であれば NetBeans 再起動
リポジトリの Clone (リモートから取得)
- メニュー: Team → Git → Clone...
- Repository URL: 例
git@github.com:user/project.git/https://github.com/user/project.git - User / Password (HTTPS の場合)、または SSH 鍵
- Parent Directory: 取得先の親フォルダ (例
~/NetBeansProjects/) - Clone Name: ローカルフォルダ名
- Next → 取り込むブランチを選択 → Finish
- 取り込み後、「プロジェクトを開きますか?」と聞かれるので Yes
既存プロジェクトに Git を導入 (init)
- プロジェクトを開いた状態で Team → Git → Initialize Repository...
- リポジトリのルートディレクトリを確認
- OK →
.git/ディレクトリが作成される - 続けて Team → Add → Team → Commit で初回コミット
日常操作: Commit / Push / Pull
| 操作 | メニュー | ショートカット (例) |
|---|---|---|
| 変更を見る | Team → Show Changes | — |
| 差分を見る | Team → Diff | — |
| ステージング不要 | (NetBeans Git は暗黙の Index。コミット画面でチェック ON のファイルだけ commit) | — |
| コミット | Team → Commit... | Ctrl+K |
| プッシュ | Team → Remote → Push to Upstream | — |
| プル | Team → Remote → Pull from Upstream | — |
| フェッチ | Team → Remote → Fetch from Upstream | — |
| ブランチ作成 | Team → Branch/Tag → Create Branch... | — |
| ブランチ切替 | Team → Checkout → Checkout Revision... | — |
| マージ | Team → Branch/Tag → Merge Revision... | — |
| 競合解決 | Team → Resolve Conflicts | — |
コミット画面の使い方
Team → Commit で開くダイアログ:
- 上部: Commit Message 欄。1 行目に要約、空行、詳細の慣習を踏襲
- 下部: 変更ファイル一覧。各行の左チェックボックスでこのコミットに含めるかどうかを選ぶ (=
git add相当) - ファイルを右クリックで Diff / Revert / Exclude が可能
- Amend Previous Commit にチェックで直前のコミットを書き換え (push 後は厳禁)
- Author / Committer も画面から指定可能
SSH 鍵の設定
NetBeans の JGit はOS の ~/.ssh/ を自動的に参照します。コマンドラインの ssh-keygen で鍵を作っておけば追加設定はほぼ不要です。
# 鍵生成 (Ed25519 を推奨)
ssh-keygen -t ed25519 -C "you@example.com"
# → ~/.ssh/id_ed25519 と id_ed25519.pub が出来る
# 公開鍵を GitHub / GitLab に登録
cat ~/.ssh/id_ed25519.pub
# → コピーして Web UI に貼り付け
# 疎通確認
ssh -T git@github.com
# Hi user! You've successfully authenticated, ...
Windows での鍵置き場は C:\Users\YOU\.ssh\。NetBeans は初回 push 時に「鍵のパスフレーズ」を聞いてくるので入力します。記憶させたい場合は pageant (PuTTY 系) または ssh-agent を OS 側で起動しておきます。
Diff / Local History の活用
- Team → Diff: HEAD と作業ツリーの差分。ファイルをダブルクリックでサイドバイサイド表示
- Right-click File → History → Show History: そのファイルのコミット履歴
- Local History → Show Local History: git とは別に NetBeans が自動保存する変更履歴 (数分単位)。commit していなくても直前の編集まで戻せる「秘密兵器」
- Annotate (Blame): 行ごとの最終編集者を表示
コンフリクト (競合) の解決
- Pull / Merge で衝突が起きると、ファイルアイコンが赤くなる
- 該当ファイルを右クリック → Resolve Conflicts...
- 3 ペイン (Local / Base / Remote) のマージビューが開く
- 各 hunk で「左採用」「右採用」「両方」「手動編集」をボタンで選ぶ
- 保存 → 右上の 「Accept」 で解決済みマーク
- すべて解決したら Team → Commit でマージコミット作成
.gitignore の推奨設定
NetBeans プロジェクトには個人 PC 固有のファイルが含まれるため、必ず除外します。
# .gitignore (Java / NetBeans 用テンプレート)
# NetBeans の個人設定
nbproject/private/
# ビルド成果物
build/
dist/
build.xml.bak
# Maven / Gradle
target/
.gradle/
# IDE 共通
.idea/
*.iml
.vscode/
# OS ゴミ
.DS_Store
Thumbs.db
# ログ・一時
*.log
*.tmp
NetBeans 8 と Apache NetBeans 12+ の違い
- NetBeans 8 系 (Oracle): メニュー名は Team → Git → ... で同じだが Java 8 ベースで動作が遅い
- Apache NetBeans 12+ (現行): JDK 17 推奨、Git プラグインが Apache 化されてリブランド
- 新規導入なら Apache NetBeans 21+ を推奨
FAQ
Q: Push でいきなり「Authentication failed」
A: HTTPS の場合は GitHub のパスワード認証廃止 (2021) で、Personal Access Token (PAT) をパスワード欄に入れる必要があります。または SSH に切り替え (git@github.com:user/repo.git)。
Q: Pull すると毎回マージコミットができて履歴が汚い
A: NetBeans GUI には --rebase の直接オプションが薄いので、定期的にコマンドラインで git pull --rebase するか、git config pull.rebase true をリポジトリ単位で設定してください。
Q: コマンドライン git と NetBeans 内蔵 git を混ぜて使って大丈夫?
A: 大丈夫です。両方とも同じ .git/ を見ているので、リファレンスをF5 (Refresh) すれば NetBeans 側にも反映されます。