Gitコマンド のバックアップ(No.1)


Gitコマンド

Gitの設定 (config コマンド)

  • 種別の指定(設定範囲)
    • システム全体(--system)
  • ユーザーの全リポジトリ(--global )
    • ユーザーのホームディレクトリの.gitconfig に設定が書き込まれる。
  • ローカルリポジトリのみ(--local)
    • ローカルリポジトリの.git/config に設定が書き込まれる。
  • 設定を確認する
    • 設定を一覧表示(--list)
      git config --system --list
      git config --global --list
      git config --local --list
  • 設定を変更する
    git config [種別] user.name "[ユーザー名]" ※英字[Firstname Familyname]表記
    git config [種別] user.email [メールアドレス]
git config [種別] push.default simple ※デフォルト(Git2.0以降)
git config [種別] core.editor [エディタの起動コマンド]

ローカルリポジトリ上のみの操作

  • init
    • Gitリポジトリを新規作成する。
    • .git ディレクトリが作成される。
      git init
      git init [ディレクトリ]
  • status
    • 状態を確認する
      git status
  • add
    • ローカルレポジトリにファイルを追加する。
    • .git/index にファイルが追加され、リポジトリの管理対象になる。
      git add [ファイルのパス]
      git add . ※全てのファイル
  • rm
    • .git/index に追加されたファイルを削除する。
    • ファイルをリポジトリとワーキングコピーから削除する。
    • .git/index に追加後にコミットしていないファイルを削除する場合は--cached を指定する。
      git rm --cached [ファイルのパス]
  • mv
    • ファイルを移動、またはファイル名を変更する。
  • commit
    • ローカルレポジトリの変更をコミット(確定)する。
    • .git/index に追加されている内容がコミット対象になる。
    • 「commit -m "xxx" -a」※"-a"は変更の自動検出あり
      git commit
      git commit -m "comment"
  • reset
    • commitを取り消す。
  • checkout
    • 現在のブランチを指定したブランチに変える。
      • 変更したファイルや追加したファイルがある場合、それらはブランチを変えても移動先に残る。
      • 移動先のブランチの同じファイルに別の変更があった場合はcheckoutが失敗する。この場合、stashで変更を退避してからcheckoutする。
    • タグを指定した場合、指定したコミットの状態のブランチが作成される
      git checkout [ブランチ名]
  • merge
    • 分岐していないブランチ間で、現在のブランチ(古い方)に、ブランチの変更(新しい方)を反映する。
      • 新しいコミットを作らない場合(Fast-forward:デフォルト)※直列の状態は変わらない(新しい方のブランチまでのコミットが何か分からなくなる)
        git checkout [古い方のブランチ名]
        git merge [新しい方のブランチ名]
        git merge -ff [新しい方のブランチ名]
      • 新しいコミットを作る場合、no fast-forwardオプションを指定する。※分岐して合流した状態になる(新しい方のブランチのコミットが分岐した形で残る)
        git checkout [古い方のブランチ名]
        git merge --no-ff [新しい方のブランチ名]
  • 分岐しているブランチ間で、現在のブランチに、分岐している他のブランチの変更を反映する。※新しいコミット(マージコミット)が作られる
  • mergeコマンドで指定したブランチの変更を取込む。
    git checkout [反映先のブランチ名]
    git merge [反映元のブランチ名]
  • rebase
    • コミットの内容を変更する。(メッセージ、順序、統合)
    • 分岐しているブランチ間で、現在のブランチの変更を、分岐している他のブランチに反映する。※新しいコミット(マージコミット)が作られる
      git checkout [反映元のブランチ名]
      git rebase [反映先のブランチ名]
  • log
    • コミットログを確認する
  • diff
    • 差分を確認する。
    • ワーキングコピーと.git/index の差分
      git diff
  • tag
    • タグを作成する
  • stash
    • 変更を一時的に退避する。
      git stash
      git stash save
      git stash save [コメント]
    • 退避した変更を一覧表示する。
      git stash list

リモートリポジトリとの操作

  • clone
    • サーバ上のレポジトリをローカル環境にコピーする。
    • 取得するレポジトリはURL形式で指定する(末尾が.git)
      git clone [URL]
      git clone [URL] [Target-Directory]
    • 指定したURLまたはTarget-Directoryの末尾の".git"を除いた名前のディレクトリが作成される。中には".git"ディレクトリが作成されてリポジトリがコピーされるのと、最新のファイル類がチェックアウトして格納される。
  • remote
    • リモートリポジトリの登録を確認
      git remote -v
      git config remote.origin.url
    • リモートリポジトリを登録(ロカルリポジトリをリモートに送る前の処理)
      git remote add origin [URL]
    • リモートリポジトリを変更
      git remote set-url origin [URL]
  • pull
    • サーバ上の変更をローカル環境に反映(マージ)する。
  • push
    • ローカルレポジトリでコミットした変更をサーバに送る。
      git push [リモート名] [ブランチ名]
      • リモートリポジトリに変更があった場合は、リモートリポジトリの変更を取込んでからpushする必要がある。(取込まずにpushすると、リモートリポジトリの変更が失われる)
    • 例:サーバ上のmasterを更新する
      git push -u origin master
  • branch
    • ブランチを確認する。
      • ローカルレポジトリ
        git branch
      • リモートレポジトリ
        git branch -r
      • ローカルとリモートの両方
        git branch -a
  • ブランチを作成する。
    • 現在のブランチから新しいブランチを作成する。
      git branch [新しいブランチの名前]

その他

  • reflog

関連用語