■他者のリポジトリを自分アカウントのリモートリポジトリとして複製する場合 他者のリポジトリへ行き、forkボタンを押す。 ■GitHub画面から直接作成する場合 右上の+ボタン等からリポジトリを作成する。 ■ローカルリポジトリを作ってから、ローカルリポジトリの内容をリモートリポジトリにあげる場合 git initとgit remote addを利用する。
git clone
git checkout -b ブランチ名
git add 更新したファイル
git commit -m "メモ書き"
git pull
git push
pull requestを発行
マージとリベース | 枝分かれしたブランチを統合すること。 |
ワークスペース(ワークツリー) | Git管理したいファイル類を置く場所。作業場所。 |
ステージ(インデックス) | ワークスペースの修正内容のうち、ローカルリポジトリに登録するファイルを選択させる準備場所 |
ローカルリポジトリ | ローカルマシン上のバージョン管理履歴の保存場所。.gitというディレクトリの中に存在する。 |
リモートリポジトリ | 皆で共有するバージョン管理履歴の保存場所。リモートリポジトリの利用に関してはGitLabやGitHub等色々な種類のサービスが存在する。 |
コミット | ローカルリポジトリ上にデータを送ること。 |
プッシュ | リモートリポジトリ上にデータを送ること。 |
プル | リモートリポジトリからローカルリポジトリに変更を反映すること。 |
フェッチ | リモートリポジトリからローカルリポジトリに更新情報を送ること。 |
ブランチ | 枝。分岐元とは別にバージョン履歴を管理する。 以下の種類がある。 ・ローカルマシンに存在するローカルブランチとリモート追跡ブランチ ・リモートに存在するリモートブランチ なお、gitコマンドでブランチを指定する時は、枝全体を指すというよりは枝の最新コミットを指すことに注意。 |
トランク | 幹。主流となっているbranchをさす。ただし、Gitにはtrunkが無い。 Gitだとmasterブランチが近いイメージ。 |
HEAD | 現在自分がいるコミット位置を指し示すポインタ。 通常は使用中ブランチの最新コミットを指すことが多い |
チェックアウト | HEADの参照コミット位置を変更すること。 |
方向 | コマンド | 内容 | 重要度 | ||||||
ワークスペース(work tree) | ステージ(index) | ローカルリポジトリ | リモートリポジトリ(origin) | ||||||
<----- | ------ | ------ | ------ | ------ | ------ | git clone | リモートリポジトリにある情報をローカルリポジトリにコピーする | 中 | |
--紐付-- | git remote | リモートリポジトリ関連の操作を行う | 低 | ||||||
○ | git init | git管理開始(ローカルリポジトリを作成) | 低 | ||||||
<----- | git pull | リモートの更新情報を、ローカルに反映する。 反映範囲:リモートブランチの更新情報→リモート追跡ブランチ(fetch)とローカルブランチ(merge) |
高 | ||||||
--紐付-- | git fetch | リモートの更新情報を、ローカルに反映する。 反映範囲:リモートブランチの更新情報→リモート追跡ブランチ |
低 | ||||||
------ | git status | 変更されたファイルの一覧を見る | 高 | ||||||
-----> | git add | ステージに追加・修正したい対象ファイルを選ぶ | 高 | ||||||
-----> | git rm | ステージから削除したい対象ファイルを選ぶ | 高 | ||||||
-----> | git mv | ステージから移動したい対象ファイルを選ぶ | 中 | ||||||
<----- | git stash | ワークスペースで変更したファイルを一時的に待避させる。 | 低 | ||||||
-----> | git commit -m "コメント" | リポジトリにコミットする。 なお、一つ前のコミット内容を修正する場合は、git commit --amendとすると良い。 |
高 | ||||||
<----- | git reset --soft | commitを取り消す(=ステージングエリアのファイルをローカルリポジトリのファイルに戻す) | 低 | ||||||
<----- | ------ | ------ | git reset --mixed(または無指定) | commitとaddを取り消す(=ステージングエリアのファイルをローカルリポジトリのファイルに戻し、addを取りやめる) | 低 | ||||
<----- | ------ | ------ | ------ | git reset --hard | commitとaddとワークスペースの修正を取り消す。 | 低 | |||
<----- | ------ | ------ | ------ | git revert | 過去commitを打ち消すような内容の新規commitを追加する。一旦git push等で公開してしまったコミットを取りやめる場合は、後述のresetでなく、revertを使う。 | 中 | |||
<----- | ------ | ------ | ------ | git checkout | HEADの差し先を変更する。HEADの差し先を変更することで、過去のコミット時点に参照を戻したりブランチを切り替えたりできる。ワーキングツリーに変更があるとcheckoutできないので、stash等でワーキングツリーの変更内容を退避する。 | 高 | |||
-----> | git push | ローカルリポジトリのファイルをリモートリポジトリに送る。 | 高 | ||||||
<-----> | forkボタン押下 | 他の人のリポジトリを自分のリモートリポジトリにコピーする | 低 | ||||||
git config | gitの設定を行う | 中 | |||||||
git log | commitログを確認する | 高 | |||||||
git reflog | HEADの差し先の移動履歴を確認する | 低 | |||||||
git show | commitの内容詳細を見る。「git show コミット時のハッシュ値:ファイルの絶対パス」でコミット当時のファイル内容が見れるので便利 | 低 | |||||||
git branch | ブランチ関連の操作を行う | 低 | |||||||
git merge | ブランチを整理する方法の一つ。現在のブランチに、指定したブランチを取り込みマージさせる。 | 高 | |||||||
git rebase | ブランチを整理する方法の一つ。現在のブランチのコミットを指定したブランチへ1個ずつ入れこんでいく形でリベースする。cherry-pickを複数回実行したのと似た効果。 | 中 | |||||||
git cherry-pick | 別ブランチのコミットを反映させる。ブランチを間違えてコミットしてしまった時に便利。cherry-pickを行っても、取得元ブランチのコミットはそのままなので、resetで戻す必要がある。 | 低 | |||||||
git tag | 実行したブランチ上でタグを付ける。他者と共有する場合はコミットと同じくgit push タグ名を実行する必要がある。 | 低 | |||||||
git diff | ファイルの差分を表示する。 | 中 | |||||||
git grep | gitで追跡しているものを対象にgrepできる。 | 低 | |||||||
git clean | リポジトリで管理されていないファイルを削除する | 低 | |||||||
git archive | アーカイブを作成する | 低 | |||||||
git blame | ファイル更新者を追跡できる | 低 | |||||||
git ls-tree | リポジトリ内のディレクトリを表示する | 低 | |||||||
git rev-list | ログのうち、ハッシュ値のみを表示 | 低 | |||||||
git gc | ガーベッジコレクションをする | 低 |
.gitconfig | git config --globalで設定される設定ファイル。長いgitコマンドのエイリアスとかを追記しておくと楽できるかも |
.gitignore | gitの除外対象なものを記載する。rootディレクトリ等に配置 |
.git/info/exclude | 自分だけ除外したい対象を記載する |
.git/info/sparse-checkout | リポジトリのうち、一部だけチェックアウトしたい場合に使う |
.gitkeep | 空のディレクトリをgit管理したい場合に、空フォルダの中に作成 |
.git/hooks/ | gitコマンド実行時等にhookさせたい処理を記述できる |