概要
Git/GitHubで利用する基本的なコマンドを、備忘録としてまとめました。
▼参考文献
学習にあたり、下記の書籍を参考にしました。
初学者にも分かりやすくおすすめです。
GitHub実践入門 ~Pull Requestによる開発の変革
▼そもそも用語が分からない…という方におすすめのサイト
【イラストで覚える】初心者のためのGitとGitHub用語集
リポジトリの作成・登録
手順
- アプリケーションのディレクトリを作成
- アプリケーションのディレクトリ上で、ローカルリポジトリを作成(
git init
) - GitHub上で、リモートリポジトリを作成
- リモートリポジトリを登録(
git remote add
)
git init
ローカルリポジトリを作成するコマンド。
すでに存在するリポジトリの初期化にも使用される。
※アプリケーションのルートディレクトリで実行
$ git init : ローカルリポジトリを作成/初期化
git remote add
リモートリポジトリを登録するコマンド。
$ git remote add origin リポジトリURL : URLのリモートリポジトリを'origin'という名前で登録
ここで、origin
はリモートリポジトリの識別子(名前)として登録されます。
上記コマンドを実行すると、以降 origin
という名前で
URLのリモートリポジトリが指定できるようになります。
なお、リポジトリURL = git@github.com:ユーザ名/リポジトリ名
です。
ファイルの変更 ~ コミット
手順
- ワークツリーでファイルを変更
- 変更ファイルをステージ(=インデックス)に追加(
git add
) - ステージ上のファイルをローカルリポジトリにコミット(
git commit
)
git add
ステージにファイルを追加するコマンド。
$ git add . : 全ての変更ファイルをステージに追加
$ git add -A : 〃
$ git add ファイル名 : 指定ファイルのみ ステージに追加
git addを取り消す
git addを取り消したいときは、下記コマンドを実行。
$ git reset : git addを取り消し(全ファイル)
$ git reset ファイル名 : git addを取り消し(指定ファイル)
git commit
ステージ上のファイルを、ローカルリポジトリにコミットするコマンド。
$ git commit -m "コミットメッセージ" : ローカルリポジトリにコミット
$ git commit : エディタが起動し、詳細なコミットメッセージを作成できる
メッセージを入力し、エディタを終了 → コミットを完了
メッセージを入力せず、エディタを終了 → コミットを中止
git commitを取り消す
コミットメッセージを修正したいときは、下記コマンドを実行。
※ 直前のcommitのみ有効
$ git commit --amend -m "コミットメッセージ" : 直前のコミットのコミットメッセージを修正
$ git commit --amend : エディタが起動し、詳細なコミットメッセージを作成できる
メッセージを入力し、エディタを終了 → 修正を完了
メッセージを入力せず、エディタを終了 → 修正を中止
git commitを取り消したいときは、下記コマンドを実行。
- コミットIDは
git log
を使って調べられます。 - 直前のコミットの場合は、
HEAD
で指定すればOK
$ git reset --soft コミットID : commitのみ取り消し
$ git reset --mixed コミットID : commit、addを取り消し
$ git reset コミットID : commit、addを取り消し(mixedと同じ)
$ git reset --hard コミットID : commit、addを取り消し、ワークツリーも修正
リモートリポジトリにプッシュ/リモートリポジトリからコードを取得
- コミットしたファイルを、ローカルリポジトリから リモートリポジトリにプッシュ(
git push
) - リモートリポジトリから最新のコードを取得(
git pull
)
git push
コミットしたファイルを、ローカルリポジトリからリモートリポジトリにプッシュするコマンド。
$ git push -u origin master : originリポジトリのmasterブランチにpush
$ git push -u origin ブランチ名 : originリポジトリの指定ブランチにpush
ここで、-u
オプションを加えることで、
作業中のブランチの上流(= upstream)を origin の指定ブランチ
に設定できます。
つまり、git pull
コマンドを実行するとき、特に指定しなくてもorigin の指定ブランチ
から取得できます。
git pull
リモートリポジトリから最新のコードを取得し、ワークツリーに反映するコマンド。
$ git pull origin master : originリポジトリのmasterブランチのコードを取得
$ git pull origin ブランチ名 : originリポジトリの指定ブランチのコードを取得
合わせて知っておきたいコマンド
- リポジトリの状態を表示(
git status
) - 変更の差分を表示(
git diff
) - コミットログを表示(
git log
) - 作業ログを表示(
git reflog
)
git status
リポジトリの状態を表示するコマンド。
$ git status : リポジトリの状態を確認
①今いるブランチ名
②コミットが1度もされていないかどうか
③ファイルの変更・add・commitの状態 が確認できます。
※ 出力結果の見方は別記事で投稿します。
git diff
変更の差分を表示するコマンド。
$ git diff : ワークツリーとステージ間の差分を表示
$ git diff HEAD : ワークツリーと最新コミット間の差分を表示
$ git diff コミットID : ワークツリーとコミット間の差分を表示
git log
現在のリポジトリにコミットされたログを表示するコマンド。
$ git log : 全てのコミットログを表示
$ git log --pretty=short : 全てのコミットログを表示 /コミットメッセージを要約(1行目のみ)
$ git log -p : 全てのコミットログを表示 /ファイルの差分も表示
$ git log --graph : 全てのコミットログを表示 /図で視覚的に分かりやすい
$ git log ディレクトリ名 : 指定ディレクトリ下のファイルのみ、コミットログを表示
$ git log ファイル名 : 指定ファイルのみ、コミットログを表示
git reflog
現在のリポジトリで行われた作業ログを表示するコマンド。
$ git reflog : 作業ログを表示
-
git log
とgit reflog
の違い
git log
はその状態からの過去のログしか確認できませんが、git reflog
は全てのログを確認できます。
また、git log
はコミットログしか確認できませんが、git reflog
はコミット以外のマージ、チェックアウトなど、全ての作業のログを確認できます。
そのため、git reset
を実行して歴史を戻った後、戻った分の歴史を復元する時などに使うことができます。
(git log
ではgit reset
後の状態が最新となるため、戻った分の歴史は表示されません)
まとめ
- リポジトリの作成・登録(
git init
/git remote add
) - ファイルの変更 ~ コミット(
git add
/git commit
)
取り消し・修正(git reset
/git commit --amend
) - リモートリポジトリにプッシュ(
git push
) - リモートリポジトリからコードを取得(
git pull
) - 合わせて知っておきたいコマンド(
git status
/git diff
/git log
/git reflog
)
以上、個人の開発で必須レベルのコマンドをまとめてみました。
同じく初心者の方の助けになれば幸いです。