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学習記録 Part 1】初めてのコミットでエラー!?“code --wait”が動かなかった理由と気づき

Last updated at Posted at 2025-11-12

ヘルプデスク出身として、クラウドエンジニア転職を目指す中で、かなりの確率で求人に書かれているのがGitへの知識が前提条件で求められていることに気づき早急に学ばないといけないと思いGitの勉強を始めました。

セクション1:まずはGitのイメージを掴む

Gitとは?

Gitは「コードやファイルのバージョンを管理するためのツール」。
開発の現場ではほぼ必ず使用されています。

•コードだけでなく、あらゆるファイルの履歴を管理できる
•誰が・いつ・何を変更したかを追跡できる
•以前のバージョンへ戻すことも可能

ーーーーーーーーーーーーーーーーーーーーーーー

Git誕生の背景
Linuxカーネル開発で使っていたバージョン管理システムのライセンスが切れたため、
「なら自分たちで作ろう」とリーナス・トーバルズ氏が開発したのがGitの始まりです。

ーーーーーーーーーーーーーーーーーーーーーーー

GitHubとは?
GitHubは「Gitのリポジトリをオンライン上で管理するサービス」です。

•ファイルのバージョンをクラウド上で管理
•世界中の開発者と共同開発できる(プルリクエスト・レビューなど)
•他人のプロジェクトの閲覧や参加も可能

リポジトリの種類
•公開リポジトリ → 無料
•非公開リポジトリ → 有料(Bitbucketは非公開でも無料)

セクション2:初期設定と基本コマンド

バージョン確認

git version

ーーーーーーーーーーーーーーーーーーーーーーー
初期設定(ユーザー情報)

git config --global user.name "GitHubユーザー名"
git config --global user.email "GitHub登録メールアドレス"
git config --global core.editor "code --wait"

設定確認:

git config --global --list

ーーーーーーーーーーーーーーーーーーーーーーー
ターミナルでよく使うコマンド

cd
ディレクトリを移動します。

ls
ディレクトリ内の内容を表示します。
ls -aで隠しファイルも表示。

mkdir
ディレクトリを新規作成。

rm
ファイルを削除。

cp
ファイルをコピー。

mv
ファイルの移動・名前変更。

cat
ファイルの内容を表示。

ーーーーーーーーーーーーーーーーーーーーーーー

セクション3:Gitの仕組みを理解する

Gitは「スナップショット」で管理する

他のツールは「変更差分」を記録しますが、
Gitは**スナップショット(その時点の状態)**を保存します。
これにより、ブランチ操作やマージが高速に行えます。
ーーーーーーーーーーーーーーーーーーーーーーー

コミットの流れ
[Commit 1]

[Commit 2]

[Commit 3]

各コミットは直前の「親コミット」を記録しており、
過去の状態をたどることができます。

ローカルとリモートの違い

ローカルリポジトリ:自分のPC上の履歴
リモートリポジトリ:GitHubなどのオンライン上の履歴

リポジトリとは、履歴データを保存するデータベースです。

ローカルの3階層構造

ワークツリー
   ↓
ステージ(インデックス)
   ↓
リポジトリ

それぞれの役割
•ワークツリー:作業中のファイル群
•ステージ:コミット前の準備エリア
•リポジトリ:確定したコミット履歴を保存

image.png

ーーーーーーーーーーーーーーーーーーーーーーー

Gitのデータ構造まとめ
•データは「圧縮ファイル」「ツリー」「コミット」で構成される
•コミットが親コミットを持ち、変更履歴をたどれる
•Gitの本質は「データをスナップショットとして圧縮保存」すること•
•各コマンドはこのデータに対する操作を行っている

ーーーーーーーーーーーーーーーーーーーーーーー

セクション4:実際の操作

リポジトリを作成

git init

.gitディレクトリが作成され、管理情報が保存されます。

ーーーーーーーーーーーーーーーーーーーーーーー

既存プロジェクトをクローン

git clone <リポジトリURL>

既存のGitプロジェクトを複製します。

ーーーーーーーーーーーーーーーーーーーーーーー

変更をステージに追加

git add <ファイル名>

すべてを追加する場合:

git add .

ーーーーーーーーーーーーーーーーーーーーーーー

変更をコミット(記録)

git commit -m "メッセージ"

メッセージ構成の例
1変更内容の要約
2空行
3変更理由

ーーーーーーーーーーーーーーーーーーーーーーー

コミット時のエラー対応

$ git add .
$ git commit
hint: Waiting for your editor to close the file... code --wait: code: command not found
error: There was a problem with the editor 'code --wait'.
Please supply the message using either -m or -F option.

Macで code --wait が設定されていたが、
code コマンドがPATH未登録のためエラー発生。

以下を実行して解決:

VSCODE上で
[Command Palette (⌘ + Shift + P)] → “Shell Command: Install ‘code’ command in PATH”

状況・履歴の確認コマンド

変更確認

git status

変更差分の確認

git diff

ステージ後の差分確認

git diff --staged

履歴確認

git log

よく使うオプション
•git log --oneline:1行で表示
•git log -p :ファイルの変更差分を表示
•git log -n 5:最新5件のみ表示

※ add・commit 前に git diff で変更確認する習慣をつけると安全です。

ーーーーーーーーーーーーーーーーーーーーーーー

ファイル操作編
ファイル削除を記録

git rm <file>
git rm -r <directory>

ローカルには残したい場合:

git rm --cached <file>

ーーーーーーーーーーーーーーーーーーーーーーー

ファイルの移動・リネーム

git mv old.txt new.txt

または以下でも同様の結果になります。

mv old.txt new.txt
git rm old.txt
git add new.txt

ーーーーーーーーーーーーーーーーーーーーーーー

GitHubへのプッシュ
リモートリポジトリを追加

git remote add origin <URL>

リモートへプッシュ

git push origin master

これでローカルの変更がGitHubに反映されます。

ーーーーーーーーーーーーーーーーーーーーーーー

まとめ

•Gitの目的:バージョン管理によるチーム開発の効率化
•コミット:スナップショット(状態)を記録
•ステージ:コミット準備のための一時領域
•GitHub:履歴をリモートで共有・管理するサービス
•一連の流れは add → commit → push

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?