Gitコマンドメモ1 ( init, add, commit, rm)

よく使うGitコマンドメモその1

最も使用するgitコマンドについての調査メモ

全般・設定

  • gitバージョンの確認
$ git --version
  • ヘルプを表示
$ git help

config設定ファイル関連

configコマンドで設定したパラメータを保存するファイルが有効範囲別に3つある。

  • /etc/gitconfig
    インストールされたシステム全体の共通設定
  • $HOME/.gitconfig
    ホームディレクトリユーザ限定の設定
  • .git/config
    リポジトリに影響

.git/configファイルの内容例

[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = https://github.com/hogehoge/sample.git
    fetch = +refs/heads/*:refs/remotes/origin/*
  • グローバル設定を状態を表示
    ユーザフォルダ直下に.gitconfigというファイルに保存される
$ git config --global --list
  • グローバル設定としてユーザ名を設定
$ git config --global user.name "Taro Yamada"
  • グローバル設定としてメールアドレスを設定
$ git config --global user.email "taroyamada@sample.com"

( ほかにも–listで表示される属性はすべて設定可能 )

Gitリポジトリ作成

  • ローカルの作業用リポジトリを作成

    リポジトリフォルダを作成した後、そのディレクトリ直下で、
    git initを実行すると、作業用リポジトリが作成される。
    実際には、リポジトリフォルダ直下に.gitフォルダと管理ファイル
    が作成される。

$ git init
  • リモートサーバー上に管理リポジトリを作成

    –bareオプションをつけてリポジトリを作成すると、
    bareリポジトリという管理用リポジトリが作成される。
    通常のリポジトリと違うのは、このリポジトリに
    直接コミットすることができない
    分散リポジトリを管理する親リポジトリといったイメージ。

    一般的には、共用サーバーなどにリモートリポジトリを
    作成するときのコマンド。ローカルに作成して誰とも共用
    しない場合は、–sharedオプションは不要だが、普通は共有するため
    のリポジトリになるはずなので、--bare --sharedはセットでよい。
    ちなみにbareリポジトリのディレクトリ名は、
    慣例的に末尾に.gitを付与する。

$ mkdir sample.git
$ cd sample.git
$ git init --bare --shared

Gitリポジトリへの登録

  • ステージング

    CVS、SVNにない概念。Gitのリポジトリには、コミット領域とは別にインデックスと呼ばれる領域がある。
    修正ソースとコミットされるリポジトリ領域の間に存在する。
    インデックスにステージングされていないファイルや変更は、コミットされない。
    作成したファイルをリポジトリへ新規登録するときに行う処理。

    オプションを省略すると、新規更新すべてが対象になる。
    -uをつけると、更新されたファイルのみが対象。
    -Aをつけると、新規更新削除されたファイルのみが対象。

$ git add .
$ git add -u
$ git add -A
  • ローカルのリポジトリに登録する

    git commitコマンドで、ステージされているすべてのファイルをローカルのgitリポジトリに登録する。
    CVS、SVNのコミットとほぼ同じ。git commitを実行するとviエディタ画面が表示されてコメントを入力し、
    保存終了するとコミットされる。コメント未記入で終了するとコミットがキャンセルされる。
    -amは、git add -ucommitを同時に行う。

$ git commit                コメント入力画面へ遷移。入力後コミットされる
$ git commit -m "message"   コメント入力画面遷移を省略して、オプションでコメントを追加 
$ git commit -am "message"  git add -u とgit commitを同時に行う
  • アンステージング

    git add でインデックスに追加したファイルをインデックスから解除する。
    アンステージすることにより次回のコミット対象から外すことになる。ファイルが削除されるわけではない。

$ git rm --cached [File Name]
$ git rm -r --cached [Directory Name]

$ git rm --cached *.txt ステージングされている拡張子.txtファイルをすべて解除する
  • コミットの修正

    git commitでリポジトリへの登録後、ちょっとしたミスやプチ修正が発生したとする。直前のコミットとして登録し直したい場合には、commit時に–amendオプションを追加して実行すると、ミスした履歴を上書きできる。

    またコメントだけ修正する場合も–amendオプションでコミットすれば最後のリビジョンのコメントが入れ替わる。
    リビジョンアップせずに上書きするイメージである。

$ vi sample.txt   修正
$ git add sample.txt ステージに追加
$ git commit --amend -m "message1" "message1"でコミット
$ git commit --amend -m "message2" コメントだけ"message2"に修正