Gitのコマンド一覧 初心者編

2019-02-21

Git は便利ですが,最初は意味が理解できず,説明してもらっても???って顔になります.一部正確ではない表現も含まれますが,わかりやすさを重視してます.

はじめに

ディレクトリ操作

Git に触る前に,ターミナル上でファイルを扱うためにはディレクトリ操作がわからないと少し辛いです.

ルート (/,root 権限ではない),絶対パスと相対パス,ホームディレクトリ (~,チルダと読む),ピリオドや二点ピリオドの意味がだいたい理解できれば良いと思います.

GitHub の登録

Git を扱っていくにあたって恐らく使うことになるので,登録しておくと便利です.

ご法度

GitHub では自分以外にも多数のユーザーが一つのプロジェクトを管理しています.もし,git clone で複製して編集した場合,絶対に master ブランチで push してはいけません.なぜなら,そのソースコードが正しく動作するか誰にも確認せずに土台を作り替えるのは大変危険だからです.やらかしてしまった場合は多くのエンジニアに殺意をもって迎えられるでしょう.

既にあるプロジェクトを自分の手元に持ってきて編集したい場合はフォークするといいです.GitHub では右上の [Fork] で操作できます.公開されているリポジトリでかつライセンスに問題なければ,文句を言われることはないでしょう.

Git の初期化

自分で作ったディレクトリ内で Git を使うために初期化を行います.(初期設定のイメージ.工場出荷時の状態に戻すわけではない)

terminal
$ git init

これを行う際に,ターミナルを開いてすぐに実行してはいけません.適用したいディレクトリに移動してからにしてください.

Git の複製

既に GitHub などに上がっている Git のプロジェクトをクローンして作業を開始することもあります.この場合,自分で作るわけではないので初期化不要です.

terminal
$ git clone https://github.com/(user)/(project).git

URL は GitHub ならプロジェクトトップページ右上の [Clone and download] で確認できます.

クローンするとリモートリポジトリの origin としてクローン元が記録されます.

ブランチの切り替え

作業を始める前に,ブランチを確認します.

terminal
$ git branch
* master

master ブランチにいる場合は上記のようになります.master ブランチはプロジェクトの心臓なので,最初のコミットを除いて,基本的に直接操作することはありません.

ソースコードの変更によって動かなくなることがないように,ブランチを切り替えて編集していきます.

terminal
# ブランチの作成
$ git branch task1

# ブランチの切り替え
$ git checkout task1

# 今いるブランチの確認
$ git branch
  master
* task1

この状態で編集してコミットしていくと,task1 ブランチに追加されていくので安全です.

ファイルのコミット

編集したファイルを記録 (コミット) するためには,二段階に分けて手順を踏む必要があります.まず,ファイルを記録候補として追加します.

terminal
$ git add .

現在のディレクトリの全てを追加するコマンドです.ピリオドの部分は適宜変更できます.

terminal
$ git commit -m "編集した内容"

add したファイルに関してコミットする際には編集した内容が分かるようにメッセージを付けます.

ファイルをコミットするとローカルリポジトリの記録が更新されます.

リモートリポジトリの登録

自分の GitHub にアップロードしたい場合は New でリモートリポジトリを作っておきます.(フォークして git clone した場合は設定済みなので不要)

任意のリポジトリ名を決めて [Create repository] を押すと作ることができ,[Clone and download] ボタンで URL が取得できるようになります.URL の構造は https://github.com/(ユーザー名)/(リポジトリ名).git です.ここにアップロードするときは以下のように設定します.

terminal
$ git remote add origin https://github.com/(ユーザー名)/(リポジトリ名).git

Git の更新

コミットしただけではローカルリポジトリのみ更新され,リモートリポジトリ (GitHub など) は更新されていません.更新するためには push を行う必要があります.

terminal
$ git push (リモートリポジトリ名) (ブランチ名)

リモートリポジトリ名は git clone で複製した場合は複製元が origin になります.git init で自前の場合は設定されていないので,先にリモートリポジトリの登録が必要です.

例えば,origin に登録した自分の GitHub に現在の task1 ブランチでアップロードしたい場合は以下のようになります.

terminal
# 最初の一回のみ (既に task1 ブランチが GitHub 上にあるときは下のコマンドを使う)
$ git push origin --set-upstream task1

# ブランチが既に GitHub にある,二回目以降
$ git push origin task1