GitHubを使って開発する際によく使うGitコマンド集をまとめました。
- リモートレポジトリの取得
- ブランチ作成
- ブランチ切替
- コミット
- リモートレポジトリに送信
- リモートレポジトリと同期
- 分岐元ブランチへマージ
- ブランチの削除
リモートレポジトリの取得
GitHub上のリモートレポジトリを手元の開発環境に持ってくる際は
$ git clone (リモートレポジトリのURL)
とするとカレントディレクトリ直下にレポジトリがコピーされます。
リモートレポジトリのURLはレポジトリのページの「Clone or download」ボタンを押すとURLが出てくるのでそれをコピーすればOK。
ブランチ作成
新しくブランチを作成するには以下のコマンドを実行する。
$ git branch (ブランチ名) <分岐元ブランチ名>
<分岐元ブランチ名>はオプションで指定しなければ現在のブランチから分岐します。
ブランチ切替
まず、ブランチの一覧および現在のブランチを確認するには以下を実行します。
$ git branch -a
ブランチを切り替えるには以下のコマンドでHEADとよばれる最新コミットへのポインタを該当ブランチの最新コミットへ変更します。
$ git checkout (ブランチ名)
コミット
ブランチで作業を行いひとまとまりの作業が終わったらコミットします。コミットの前に作業で生じた変更部分を確認します。
$ git status
とすると変更が生じたファイルや新規/削除のファイルが確認できます。現在の最新コミットの差分が見たければ
$ git diff (ファイル名)
で確認できます。問題がなけば作業ファイルをindexに登録し(stageするという)、次回コミットに含めるようにします。
特定ファイルだけを登録する場合は
$ git add (ファイル名)
とし、すべて登録する場合は
$ git add -A
とします。
stage後はcommitすることでローカルレポジトリに作業を反映できます。
$ git commit
リモートレポジトリに送信
ローカルレポジトリにコミットした内容をリモートレポジトリに反映するには以下のコマンドを実行します。
$ git push
リモートレポジトリと同期
gitは分散レポジトリなので自分の作業と平行して別の人が作業をpushしリモートレポジトリと自分のローカルレポジトリに差分が生じることがあります。fetchおよびmergeを行い同期します。
まずgitではリモートレポジトリと同期をとるためにローカルレポジトリ内に「origin/(ブランチ名)」という内部的なブランチを作成します。
$ git fetch
とするとorigin/(ブランチ名)がリモートレポジトリと同期されます。
同期した「origin/(ブランチ名)」の変更点を自分が作業しているブランチに取り込むには「origin/(ブランチ名)」をマージします。
$ git merge origin/(ブランチ名)
fetchとmergeをまとめて行う際は
$ git pull
とします。
また、別ブランチの変更点を取り込みたい(例:masterブランチの変更点をdevブランチに取り込むなど)場合も同様にmasterブランチに移ってfetchした後、devブランチに移り
$ git merge --no-ff master
とすることで取り込めます。
なお、–no-ffオプションはFast-Forwardが出来る場合でもマージコミットを作るオプションです。
分岐元ブランチへマージ
ブランチでの作業が終わり結果を分岐元にマージする場合は
$ git checkout (分岐元ブランチ) $ git merge --no-ff (マージ対象ブランチ)
とするとマージされるので
$ git push
してリモートレポジトリに反映しておきましょう。
ブランチの削除
作業が終わりブランチが不要になった場合は
$ git branch -d (ブランチ名)
でブランチを削除しておきましょう。