🙀
今更ながらのGitにゅうもん
Gitとは、ソフトウェア開発で最も広く使われている分散型バージョン管理システム(DVCS)です。
1. そもそもGitとは?
Gitは、ソースコードの変更履歴を記録し、過去の状態に戻したり、複数人で安全に共同作業できるツール。
ローカルに履歴を保存する「分散型」であるため、ネットの環境がなくても使えます。
用語解説
- バージョン管理:ファイルの変更履歴を記録し、過去のバージョンに戻れる仕組み。
- 分散型バージョン管理(DVCS):リポジトリが中央サーバーだけでなく、各開発者のPCにも保存される方式。
- リポジトリ(repository):Gitで管理するファイルのルート的な何か。コードや履歴がすべて保存される。
2. Gitのインストール
Windows
公式サイトからダウンロードしてインストール。
Mac
Homebrewを使う場合
brew install git
Linux (Ubuntu/Debian系)
sudo apt update
sudo apt install git
Gitの動作確認
git --version
用語解説
- Homebrew:Mac向けのパッケージ管理ツール。ソフトのインストールを簡単にする。
- パッケージ管理ツール:ソフトウェアのインストールや更新を簡単に行うツール。
3. Gitの初期設定
最初に、ユーザー名とメールアドレスを設定。(やらないと使えない昨日があります)
git config --global user.name "名前"
git config --global user.email "メールアドレス"
現在の設定を確認
git config --list
用語解説
- config:Gitの設定情報。ユーザー名、メールアドレス、エディタなどを指定できる。
-
グローバル設定:全リポジトリに適用される設定。
--global
オプションをつけると設定が全体に適用される。
4. Gitの基本コマンド
4.1 リポジトリの作成
git init
現在のディレクトリをGitリポジトリにする。
4.2 ファイルの追加とコミット
git add ファイル名
git commit -m "変更内容を説明するメッセージ"
用語解説
- ステージング(staging):コミット前に変更を一時的に保存すること。
- コミット(commit):変更を確定し、履歴に保存すること。
-
メッセージ:
-m
で指定するコミットの説明。
4.3 コミット履歴の確認
git log
git log --oneline --graph --all
用語解説
- ログ(log):過去のコミット履歴を一覧表示するコマンド。
- グラフ表示(graph):ブランチの関係を視覚的に確認できるオプション。
4.4 変更の取り消し
git reset -- ファイル名 # 作業中の変更を破棄
git reset HEAD ファイル名 # ステージングを解除(ツリーはそのまま)
git reset --hard HEAD^ # 直前のコミットを削除
用語解説
- checkout:ブランチの切り替えや、特定の状態に戻すコマンド。
- reset:コミットの取り消しや、変更を過去の状態に戻すコマンド。
5. ブランチとマージ
5.1 ブランチの作成と切り替え
git branch ブランチ名
git switch ブランチ名
git switch -b ブランチ名 # 作成と切り替えを同時に
5.2 ブランチの一覧表示
git branch
5.3 ブランチのマージ
git checkout main
git merge ブランチ名
用語解説
- ブランチ(branch):開発を分岐させる機能。新機能の開発などに使う。基本的に開発中のデータはmainブランチにマージしない。時にやりますが。
- マージ(merge):異なるブランチの変更を統合する操作。
6. GitHubとの連携
6.1 リモートリポジトリの設定
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
originの部分は好きな文字に変えられます。
6.2 GitHubへプッシュ
git push -u origin main
6.3 GitHubからクローン
git clone https://github.com/ユーザー名/リポジトリ名.git
用語解説
- リモートリポジトリ(remote repository):GitHubなどのサーバー上にあるリポジトリ。
- プッシュ(push):ローカルの変更をリモートリポジトリにアップロードすること。
- クローン(clone):リモートリポジトリをコピーしてローカルで使えるようにすること。
7. トラブルシューティング
7.1 競合(Conflict)の解決
git add .
git commit -m "競合を解決"
7.2 過去のバージョンに戻る
git reset --hard コミットID
7.3 誤ってpushしたファイルを削除
git rm --cached ファイル名
git commit -m "不要なファイル削除"
git push origin main
用語解説
- 競合(conflict):異なる変更が同じファイルに加えられ、マージできない状態。
- ハードリセット(hard reset):過去の状態に完全に戻す操作。
- キャッシュ(cached):Gitのステージングエリアにあるファイル。
8. 基本のまとめ
Gitを使えば、過去の変更を管理しながら安全に開発できる。
GitHubと連携すれば、チーム開発やリモート作業も簡単に!
重要なポイント
-
git init
でリポジトリ作成 -
git add
→git commit
→git push
の流れで管理 -
git branch
を活用して安全に開発 -
git log
で履歴を確認 -
git reset
で誤った変更を取り消し
.gitgnoreについて
.gitignore
は、Gitで管理しない(無視する)ファイルやフォルダを指定するための設定ファイル。
.gitignore
の基本
1. -
.gitignore
に書かれたファイルやフォルダはgit add
してもステージングされない。 - 不要なファイル(ログ、ビルドファイル、環境設定ファイルなど)をコミットしないために使う。
記述ルール
-
#
でコメントを書ける -
*
はワイルドカード(任意の文字列にマッチ) -
/
はフォルダを指定 -
!
をつけると除外(無視しない)
.gitignore
の例
2.
.gitignore
2.1 一般的な # コンパイル済みファイル
*.class
*.o
*.exe
# ログファイル
*.log
# バイナリファイル
*.png
*.jpg
*.zip
# OS固有のファイル
.DS_Store
Thumbs.db
# 環境設定ファイル
.env
config.json
.gitignore
2.2 言語・フレームワーク別の - C言語(Makefileを使う場合)
# コンパイル済みファイル
*.o
*.out
*.exe
# Makefileの生成物
*.d
- PHP
# キャッシュ・ログ
/cache/
*.log
# 環境変数
.env
- Android(Android Studio)
# ビルド関連
/build/
.gradle/
.idea/
# ユーザーごとの設定
/local.properties
.gitignore
を適用する方法
3. 3.1 新しく追加する場合
-
.gitignore
を作成 - 無視したいファイルを記述
- 反映する
git add .gitignore
git commit -m "Add .gitignore"
.gitignore
に追加したい
3.2 既にGitで管理されているファイルを .gitignore
に書いただけでは、すでにGitで追跡されているファイルは無視されない。
その場合は git rm --cached
を使う。
git rm --cached ファイル名
git commit -m "Stop tracking ファイル名"
フォルダごと削除したい場合:
git rm -r --cached フォルダ名
git commit -m "Stop tracking フォルダ名"
.gitignore
のオススメテンプレート
4. GitHubには、言語ごとの .gitignore
のテンプレがあります。便利です。使いましょう。
GitHubの.gitignoreテンプレ集
5. .gitgnoreのまとめ
-
.gitignore
はGitで管理しないファイルを指定するファイルです -
.gitignore
に追加しても、既に追跡されているファイルはgit rm --cached
しないと無視されないです。めんどっ(((
Discussion