トップページ > コンテンツ > 環境設定 > Github設定

Git利用までの流れ

1.Githubアカウント作成

2.Gitインストール

3.リモートリポジトリを作成する。
■他者のリポジトリを自分アカウントのリモートリポジトリとして複製する場合
 他者のリポジトリへ行き、forkボタンを押す。

■GitHub画面から直接作成する場合
 右上の+ボタン等からリポジトリを作成する。

■ローカルリポジトリを作ってから、ローカルリポジトリの内容をリモートリポジトリにあげる場合
 git initとgit remote addを利用する。
※git initとgit remote addについては、こちら参照。

4.自分アカウントのリモートリポジトリの内容を、ローカルリポジトリに複製する。
git clone
※3でgit initとgit remote addを選択した場合は、常に作成済のため不要。

5.更新用のブランチを作成
git checkout -b ブランチ名

6.ワークスペースのファイルを更新する

7.ステージに更新ファイルを置く
git add 更新したファイル

8.ステージの内容をリポジトリにコミットする
git commit -m "メモ書き"

9.追加したい作業分だけ、5〜8を繰り返す。

10.リモートリポジトリの情報を取得し、競合を修正する。
git pull

11.ローカルリポジトリの内容をリモートリポジトリにコミットする。
git push

12.リモートリポジトリに変更したブランチを取り込ませる。
pull requestを発行

構成管理用語

マージとリベース 枝分かれしたブランチを統合すること。
ワークスペース(ワークツリー) Git管理したいファイル類を置く場所。作業場所。
ステージ(インデックス) ワークスペースの修正内容のうち、ローカルリポジトリに登録するファイルを選択させる準備場所
ローカルリポジトリ ローカルマシン上のバージョン管理履歴の保存場所。.gitというディレクトリの中に存在する。
リモートリポジトリ 皆で共有するバージョン管理履歴の保存場所。リモートリポジトリの利用に関してはGitLabやGitHub等色々な種類のサービスが存在する。
コミット ローカルリポジトリ上にデータを送ること。
プッシュ リモートリポジトリ上にデータを送ること。
プル リモートリポジトリからローカルリポジトリに変更を反映すること。
フェッチ リモートリポジトリからローカルリポジトリに更新情報を送ること。
ブランチ 枝。分岐元とは別にバージョン履歴を管理する。

以下の種類がある。
・ローカルマシンに存在するローカルブランチとリモート追跡ブランチ
・リモートに存在するリモートブランチ

なお、gitコマンドでブランチを指定する時は、枝全体を指すというよりは枝の最新コミットを指すことに注意。
トランク 幹。主流となっているbranchをさす。ただし、Gitにはtrunkが無い。
Gitだとmasterブランチが近いイメージ。
HEAD 現在自分がいるコミット位置を指し示すポインタ。
通常は使用中ブランチの最新コミットを指すことが多い
チェックアウト HEADの参照コミット位置を変更すること。

主要なgitコマンド

方向 コマンド 内容 重要度
ワークスペース(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させたい処理を記述できる

Github機能の利用


その他

  • GitHubに登録してある公開鍵はhttps://github.com/xxxx.keysでアクセス可能らしい。
  • Githubにkeyを追加するには、Settings->SSH Keys->Add SSH Keyの順。
  • export GIT_CURL_VERBOSE=1とするとgitコマンド実行時の通信状態が分かるのでデバッグしやすい。
  • push時やpull request時等に何らかの処理を自動させることも可能(githubのアクション)


最終更新:2021年10月16日 12:18