よく使う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 -u
とcommit
を同時に行う。
$ 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"に修正