読者です 読者をやめる 読者になる 読者になる

Gitの簡単なまとめ書き

忘備録 Git

忘備録シリーズ第二弾ということで今回はgitの基本操作をまとめたものです。

はじめに

これは基本的にはターミナル(bashzshなど)で使うgitコマンドをまとめたものであり、初心者向けと簡単なチートシートみたいなものです。

更新履歴

4/7 公開
4/8 プロキシ設定について追加

初期設定

$ git config --global user.name "[自分の名前]"
$ git config --global user.email "適当なメールアドレス"

コミットログ情報に記載される. レポジトリを公開する場合には他の人にも見られても大丈夫にしておくと良い. 変更は上のコマンドをもう一回打てばよい. --global は全体向け設定である. 付けなければそのリポジトリだけに適用される設定となる. また、ホームディレクトリの ~/.gitconfig ファイルに直接書き込むこともできる.

まっさらな状態からやる場合

  1. $ cd ../../ or $ mkdir ..
    該当のディレクトリに移動するか作成する(作成した場合には何かしらのファイルを作成しておく. とりあえずは README.md にしておけばよい)

  2. $ git init
    リポジトリを初期化する

  3. $ git add . ファイルを git のステージ領域(変更を一時記録しておく)に登録する(今回は全てのファイル)

  4. $ git commit -m "コミットメッセージ" or $ git commit -m 'コミットメッセージ'
    ステージ領域に登録されている変更を正式に登録する. (-m は First commitのこと, いわゆる要約. -m を付けなければ First commit 以外のことも記述できる.) Windowsだとダブルクォーテーションだとエラーになるかも.

  5. $ git remote add origin リポジトリのURL
    既存のローカルリポジトリにリモートリポジトリを登録する. origin はリモートリポジトリの識別子.(リポジトリの URL は GitHub や Bitbucket 等でリポジトリを作成し入手する. SSH を利用するためには別途他の設定がある)

  6. $ git push -u origin master
    前回までに commit したことをリモートリポジトリへ送信する. ローカルリポジトリとリモートリポジトリの内容にコンフリクト(競合, 衝突)が起きることもある. -u は現在の upstream が origin リポジトリの master ブランチに設定するオプションである. pull する際に何もオプションをつけなくても origin リポジトリの master ブランチからとなる.

GitHubなどからリポジトリを持ってくる場合

$ git clone リポジトリのURL
GitHub 等の該当リポジトリからリポジトリの内容全てをローカルリポジトリにコピーする. リポジトリ識別子は origin と自動設定される.

ブランチ・マージについて

  1. $ git checkout -b ブランチ名 ($ git branch ブランチ名 + $ git checkout ブランチ名と同様)
    ブランチ名のブランチが作成されて, 現在のブランチがブランチ名に移動する.

  2. $ git checkout 統合ブランチ名
    マージする先の統合ブランチ(例えば master ブランチ)にブランチを移動する.

  3. $ git merge --no-ff ブランチ名
    現在のブランチにブランチ名ブランチをマージする. --no-ff はマージコミットを作成するオプション.

プロキシ設定

今回はhttps経由でリモートリポジトリとやりとりする場合

$ git config --global http.proxy プロキシサーバー:ポート番号
$ git config --global https.proxy プロキシサーバー:ポート番号

解除する場合には

$ git config --global --remove-section http
$ git config --global --remove-section https

bashなどのエイリアスを作ってしまうと楽だと思います. SSH経由, 認証が必要な場合は今回は自分的には必要なかったので必要になったら追加していこうかなと思っています.

その他の操作

  • $ git status
    リポジトリの状態を確認する.

  • $ git log
    コミットログを確認する. 内容の commit 欄の英数字列がコミットを示すハッシュとなる.

    • git log --graph
      ブランチを視覚的に確認する.
  • $ git diff
    変更差分を確認する.

  • $ git branch
    ブランリ一覧を表示する.

  • $ git reset --hard ハッシュ
    指定されたハッシュのコミットの状態に戻す

  • $ git reflog
    現在にリポジトリで行われた作業ログを確認する.

  • $ git rebase -i HEAD~2
    現在のブランチの最新のコミットを含む2つ(今回は2としたがいくつでも良い)のコミットを対象にコミットを結合する. エディタが立ち上がるので結合先のコミットは pick のままで結合したいコミットは fixup に書き換えると結合される.

おわりに

今後、自分が学習していって追加したほうがいいなと思ったことなどは適宜追加修正していきたいなと思います。まあ、これでやっとgitの大体の基本操作ができるようになったかなと思っています。