⚙️
【Git&Github】gitコマンドまとめ(随時更新)
gitコマンドまとめ
git init(ローカルリポジトリの作成)
ローカルリポジトリの作成
git init
ディレクトリをしていして作成する場合
git init <ディレクトリ名>
実行結果
ターミナルでgit init
を実行するとディレクトリ内に.git
ファイル(隠しファイル)が作成される。
$ git init
Initialized empty Git repository in C:/フォルダ名/.git/
隠しファイル(.gitファイル)の表示方法
表示→隠しファイルにチェックをいれることでファイルを表示することが可能。
git add(ワークツリーからインデックスへ変更を反映)(ステージング)
ワークツリーからインデックスへ変更を反映
git add
変更されたまたは削除されたファイルをステージングする。新しいファイルをステージングしない。
git add -u
変更されたファイルや新しいファイルをステージングする。
git add .
すべての変更(新しいファイルの追加、変更、削除)をステージングエリアに追加
git add -A
ファイル名を指定することも可能
git add <ファイル名> <ファイル名>
特定のディレクトリ内の変更をステージング
git add path/directory/
細かく変更を管理し、意図した変更だけをステージングしたい場合
git add -p
ワークツリーとインデックスとは
ワークツリー(ワーキングディレクトリ):
ローカル上にある実際に作業をしているディレクトリのこと。VScodeの作業ディレクトリ。
インデックス(ステージ):
ワークツリーとローカルリポジトリとの差分を記録する一時的な保存領域。VScodeの変更領域。
git add -pの出力の際の[y,n,q,a,d,e,?] の意味
git add -p
を実行すると変更されたファイルの変更を「ハンク(ファイル内で変更が行われた連続した部分)」単位でステージングできる。
y
: このハンクをステージングエリアに追加します。
n
: このハンクをステージングエリアに追加しません(スキップします)。
q
: git add -p を終了し、これ以上のハンクを処理しません。
a
: このファイルのすべてのハンクをステージングエリアに追加します。
d
: このファイルのすべてのハンクをスキップし、ステージングしません。
e
: ハンクを手動で編集するためのエディタを開きます。ここで変更内容を選択的にステージングすることができます。
?
: ヘルプを表示し、これらのオプションの詳細を確認します。
git commit(インデックスからローカルリポジトリへ変更を反映)
インデックスからローカルリポジトリへ変更を反映
git commit
インデックスからローカルリポジトリへ変更を反映し、コメントを付ける場合
git commit -m "コメント"
リモートリポジトリへPush前のコミットをやり直す
git commit --amend
コミットするメリットや注意点
- 変更履歴が確認しやすくなる。
- 1作業1コミットすることやコミットする際にコメントを付けるとなお良い。
コミットメッセージのルール
git commit -m のコメントのルール
$ git commit -m "[動詞] 変更の目的や内容"
動詞 | 内容 |
---|---|
Start | 開始・ファーストコミット |
Add | 新規機能・新規ファイル追加 |
Update | バグ以外の機能修正 |
Change | 仕様変更による修正 |
Refactor | リファクタリング等 |
Remove | 削除、一部コードの削除 |
Rename | ファイル名の変更 |
Fix | バグの修正 |
Move | ファイルの移動 |
Test | テストの追加等 |
Pref | パフォーマンス向上 |
Style | 空白、行、セミコロンの修正等 |
Finish | 終了 |
git log(コミットログを確認する)
コミットログを確認する
git log
git log 出力結果
コミットハッシュ,コミットメッセージ,コミット日時,著者情報
$ git log
commit bea05f7a0487b6dd46a66c743dddbbabbd9757a6 (HEAD -> main, origin/main, origin/develop,
develop)
Merge: 9666570 ca2a97f
Author: pyusuket <101777200+pyusuket@users.noreply.github.com>
Date: Mon Jul 15 22:27:27 2024 +0900
Merge pull request #2 from pyusuket/feature
[Update] index.htmlの修正2
commit ca2a97fc6e1389e374aa42c1b1894b1d99823da6
Author: pyusuket <shimomura8939@gmail.com>
Date: Mon Jul 15 22:19:43 2024 +0900
[Update] index.htmlの修正2の修正
コミットのハッシュとコミットメッセージを1行に要約する
git log --oneline
git log --onelineの出力結果
$ git log --oneline
bea05f7 (HEAD -> main, origin/main, origin/develop) Merge pull request #2 from pyusuket/feature
ca2a97f [Update] index.htmlの修正2の修正
f090c95 [Update] index.htmlの修正2
9666570 Merge branch 'feature'
コミット履歴をツリー形式で視覚的に表示
git log --graph
git log --graphの出力結果
* 416367e (origin/feature) フェッチのテスト
| * bea05f7 (HEAD -> main, origin/main, origin/develop, develop) Merge pull request #2 from pyusuket/feature
| |\
| |/
|/|
* | ca2a97f [Update] index.htmlの修正2の修正
* | f090c95 [Update] index.htmlの修正2
| * 9666570 Merge branch 'feature'
| |\
| |/
|/|
* | a2375e6 [Update] index.htmlの修正
| * 99aca13 Merge pull request #1 from pyusuket/feature
| |\
| |/
|/|
* | 5a7dffc [Update] <p>タグの追加2
* | 6b0049b [Update] <p>タグの追加
* | 3a516f8 [Add] プルリクエストのテスト
* | 732645d [Add] ブランチ作成、ファイル追加
|/
* 9a5862e [Start] first commit
コミット履歴をツリー形式で視覚的に表示
git log --graph --oneline --all
git stutus(変更されたファイルを確認する)
変更されたファイルを確認する
git log
shortオプションを付けることで、よりコンパクトな方法で変更を確認できる。
git status --short
shortオプションの表示について
short
オプションを実行すると先頭に以下のような文字が表示される。それぞれの意味合いについて記載している。
- ?? - 追跡されていないファイル
- A - ステージに追加されたファイル
- M - 変更されたファイル
- D - 削除されたファイル
git help(コマンドを一覧表示)
コマンドを一覧表示
git help
git diff(変更したファイルの差分を表示)
変更したファイルの差分を表示(ワークツリーとステージの差分)
git diff
変更したファイルの差分を表示(指定したファイルのみ)
git diff <ファイル名>
変更したファイルの差分を表示(ステージとリポジトリの差分)
git diff --staged
git rm(ファイル・ディレクトリの削除)
ファイルの削除
git rm <ファイル名>
ディレクトリの削除
git rm -f <ディレクトリ名>
git remote(設定しているリモートリポジトリの情報を表示)
Pushした場合のブランチが表示される
git remote
設定しているリモートリポジトリへのURLが表示される
git remote -v
git remoteの実行結果とGitHubの画面
git branch(リポジトリのアクティブブランチを確認)
ローカルリポジトリのアクティブブランチを確認
git branch
出力結果
出力結果
$ git branch
* feature
main
リモートリポジトリのブランチを確認
git branch -r
出力結果
出力結果
$ git branch -r
origin/feature
origin/main
git branch(ブランチの一覧表示)
ブランチの一覧表示
git branch
出力結果
出力結果
$ git branch
* main
git barnch <ブランチ名>(ブランチの作成)
ブランチ作成
git branch <branch-name>
出力結果
出力結果
$ git branch develop
$ git branch
develop
* main
git checkout (ブランチの切り替え)
ブランチの切り替え
git checkout <branch-name>
出力結果
出力結果(main➡developへ切り替わっている)
$ git checkout develop
Switched to branch 'develop'
$ git branch
* develop
main
git switch (ブランチの切り替え)
ブランチの切り替え
git switch <branch-name>
出力結果
出力結果(main➡developへ切り替わっている)
$ git switch develop
Switched to branch 'develop'
$ git branch
* develop
main
git checkout -b(ブランチ作成と切り替え)
ブランチ作成と切り替え
git checkout -b <branch-name>
出力結果
出力結果(featureブランチが作成され切り替わっている)
$ git checkout -b feature
Switched to a new branch 'feature'
$ git branch
develop
* feature
main
git switch -c(ブランチ作成と切り替え)
ブランチ作成と切り替え
git switch -c <branch-name>
出力結果
出力結果(featureブランチが作成され切り替わっている)
$ git switch -c feature
Switched to a new branch 'feature'
$ git branch
develop
* feature
main
git branch -d(ブランチの削除)
ブランチの削除
git branch -d <branch-name>
出力結果
出力結果(developブランチが削除されている)
$ git branch -d develop
Deleted branch develop (was 9a5862e).
$ git branch
* feature
main
git checkout(ファイル・ディレクトリの変更を取り消す)
ファイルの変更を取り消す
git checkout --<ファイル名>
ディレクトリの変更を取り消す
git checkout --<ディレクトリ名>
Discussion