🙄
【Git】Gitに関する入門書を読んだのでまとめてみた.
はじめに
Gitの入門書で勉強をしたので,そのまとめを行いました!
他にもぜひ覚えるべきコマンドがあれば教えてください!
以下の図書を参考にしました。
.inputrcファイルについて
- タブ連打で候補が切り替わる。
"\t":menu-complete set completion-ignore-case on
3つの場所を抑える
- 各エリアの説明
- ワークツリー: 変更するファイルを保持する場所
- ステージングエリア: コミットするファイルを登録する場所
- Gitディレクトリ: コミットを格納する場所
git status vs git diff
git status
- ワークツリーとステージングエリアの状態を表示する。
- 変更されたファイル: ワークツリーで変更されたファイルの一覧
- ステージされていない変更: ワークツリーで変更されたファイルのうち、まだステージされていない変更
- ステージされた変更: ワークツリーで変更されたファイルのうち、ステージされた変更
git diff
- 変更された内容の差分を表示する。
- オプション
- オプションなし: ワークツリーとステージングエリアの差分を表示
- --unstaged: ワークツリー上の変更の差分を表示
- --staged: ステージされた変更の差分を表示
- --cached: コミット済みの内容とステージされた変更の差分を表示
- --color: 差分を色分けして表示
-
git diff ブランチ名
: 現在使用中のブランチとブランチ名との差分を表示
- オプション
git log
- オプション
- -p: 差分を表示する
git reset vs git checkout
git resetやgit checkoutでHEADや過去のコミットから作業ツリーに内容を戻すときの変更は必ずステージを経由する
- HEADを過去のコミットに移動する:
git reset --soft <コミット>
- HEADを過去のコミットに移動し、ステージの内容を移動先のコミットの状態に戻す:
git reset --mixed <コミット>
- HEADを過去のコミットに移動し、ステージと作業ツリーの内容を移動先のコミットの状態に戻す:
git reset --hard <コミット>
git checkout
- ブランチを移動
git checkout ブランチ名
- ブランチの作成と移動を同時に行う
git checkout -b ブランチ名
- ローカルリポジトリに存在しないブランチを取得する
git fetch origin git checkout ブランチ名
git config
local vs global vs system
-
--local
: 対象リポジトリ内の .git/config -
--global
:C:¥Users¥[user]¥.gitconfig
-
--system
: 場所はまちまち。例としてはC:¥Program Files (x86)Git¥etc¥gitconfig
editorをVScodeに変更する方法
git config --global core.editor "code --wait"
git rm
- ステージングエリアに消したことを登録し、コミットする必要がある
git rm -r パス
git add . vs git add -A
- どちらも削除されたファイルや変更されたファイルすべてをインデックスにaddされる。厳密には
git add .
はカレントディレクトリを表すのですべてがaddされるわけではないことに注意。
git commit
- オプション
-
-m ""
: ""をコミットメッセージとしてコミットする -
-a
:git add
も同時に行う。注意点はすでにステージングエリアにあるファイルのみコミットする。つまりuntrackedなファイルはステージングエリアに移動しない -
-am ""
: 上記2つを組み合わせたもの
-
git branch
-
ブランチを作成
git branch ブランチ名
-
ブランチを削除
-
-d
ならばマージ済みのブランチを削除し、-D
ならばマージ状況に関わらずブランチを削除する。ちなみにdはdeleteの略
git branch -d(D) ブランチ名
-
-
リモートリポジトリのブランチを削除(いずれか)
git push --delete origin ブランチ名 git push origin :ブランチ名
GitHub
-
origin URLを確認する
$ git remote -v
-
origin とは
リモートリポジトリのデフォルト名。GitHubでは一つのローカルリポジトリに対して複数のリモートリポジトリを設定できる。
参考文献
いちばんやさしいGit&GitHubの教本 第2版 人気講師が教えるバージョン管理&共有入門 「いちばんやさしい教本」シリーズ
Discussion