引用
https://www.atmarkit.co.jp/ait/series/3190/
https://www.ricksoft.jp/blog/archives/9483/
https://note.nkmk.me/git-config-setting/
3つの場所
- Gitリポジトリ
- ファイルやディレクトリの状態を保存する領域
- 実態は作業ディレクトリの中の「.gitディレクトリ」
- 作業ディレクトリ
- ファイルの編集作業を行うディレクトリ
- ステージングエリア
- 作業ディレクトリとGitリポジトリの中間に存在する領域。
- コミットする準備ができたファイルはここに追加
ファイルの状態
- tracked:追跡している
- unmodified
- スナップショットがリポジトリに保存されているファイル
- modified
- Gitが変更を追跡しているが変更がリポジトリに保存されていないファイル
- staged
- ステージングエリアに追加され、次回コミットの対象となっているファイル
- unmodified
- untracked:追跡していない
コミット
- コミットはその時点の全てのファイルの情報を持つ
- Gitはコミット単位で変更履歴を管理し、以下の情報を登録する
- リビジョン(SHA-1 ハッシュ)
- Author(コミットを作成した人)
- Committer(コミットを適用した人)
- 全ファイルのツリー情報のスナップショット
- 1つ前のコミットのリビジョン
- 差分は比較対象のコミット同士だけで可能
ブランチ
- ブランチの実態は**「一連のコミット履歴」の最新のコミットを指すポインタ**である。
- HEADは基本的にカレントブランチを指す
Gitブランチの操作 | イメージ |
---|---|
作成 | 最新コミット情報に目印をつける |
コミット | コミット情報を作成して目印を移動する |
マージ | 新しいコミット情報を造りそこに目印を移動する |
削除 | コミット情報から目印を失くすこと(コミット情報は削除しない) |
Gitの設定
ファイルの種類と場所(system, global,local)
種類 | 対象範囲 | 場所 | 備考 |
---|---|---|---|
system | システム全体 | /etc/gitconfig | - |
global | 該当ユーザの全リポジトリ | ~/.gitconfig | ホーム直下 |
local | 該当リポジトリ | repository/.git/config | リポジトリの.git直下 |
- system, global,localの順に読み込まれる。
設定の確認
- コマンドを実行した場所で有効になっている値が表示される。値が設定されていなければ何も表示されない。
git config <項目>
# 例
git config user.mail
example@example.com
- system, global,localそれぞれの設定値の確認にはオプションをつける
git config --system <項目>
git config --global <項目>
git config --local <項目>
※--local
オプションはGitで管理されていない場所でコマンドを叩くとエラーになる
設定の一覧表示
- コマンドを実行した場所で有効になっている設定項目とその設定値が全て表示される
git config -l
- system global localのそれぞれの設定を個別に確認する場合はオプション付与
git config --local -l
git config --global -l
git config --system -l
設定の変更
-
git config <name> <value>
で各項目の設定を変更できる - オプション無しだとlocalの設定が変更される
- globalやsystemの設定を変更したい場合はオプションをつける
git config <name> <value> # ローカルの設定を変更
git config --global <name> <value>
git config --system <name> <value>
※Gitで管理されていない場所でオプション無しでコマンドを叩くとエラーになる
SSH keysの作成
$ ssh-keygen -t rsa -b 4096
-
-t
オプションで作成する鍵の暗号化形式を指定できる。rsaはデフォルト -
-b
オプションで鍵の長さを指定- ssh-keygenのデフォルト値2,048ビット。GitHubの推奨は4,096ビット。
- 公開鍵の場所
- ~/.ssh/id_rsa.pub
- 秘密鍵の場所
- ~/.ssh/id_rsa
- 引用
公開鍵の中身をコピーする
clip < ~/.ssh/id_rsa.pub