0. はじめに
gitすばらしい!基本的なコマンドラインでの操作に関してドットインストール「git入門」を参考にしながら備忘録を描いてみた。
1. git導入
バージョン確認
$ git –version
> git version 1.7.9.5
コンフィグの設定
$ git config –global user.name ”(your name)”
$ git config –global user.email “(your email)”
$ git config –global color.ui true
コンフィグ内容の確認
$ git config -l
> user.name=(your name)
> user.email=(your email)
> color.ui=true
ヘルプの見方
$ git コマンド –help
ex. $ git config –help
2. gitの概要
意味のあるグループ単位でコミットする(リポジトリに登録する)ことでわかりやすいリポジトリになる。
- 作業ディレクトリ
- ステージングエリア(インデックス)
- リポジトリ(ローカル・リモート)
git公式サイトのbook!おすすめ! http://git-scm.com/book/ja
3. gitを使ってみる
$ git init //gitの初期化をする
$ git emacs test.txt //作業ディレクトリにファイルを作る
$ git add test.txt //作業ディレクトリからステージングエリアにファイルを上げる
($ git add . //すべてをステージに上げる )
$ git commit //ステージングエリアにあるファイルをリポジトリに上げる
($ git commit -m “message” //メッセージを入力するのを同時に行いながらコミットする)
$ git log //コミットログの表示
> commit 568d803956316ed188298b3345c65eb0fc155a27 <<コミットに付くID>>
> Author: varlal <hoge@gmail.com> <<コミットした人の情報>>
> Date: Sat Dec 14 02:11:05 2013 +0900 <<コミットした日時の情報>>
> Readme commit <<コミット時に入力したメッセージ>>
●ログを一行で見る
$ git log –oneline
> 568d803 Readme commit
●ログで変更した内容も見る
$ git log -p
> commit 568d803956316ed188298b3345c65eb0fc155a27
> Author: varlal <hoge@gmail.com>
> Date: Sat Dec 14 02:11:05 2013 +0900
> Readme commit
> diff –git a/README.txt b/README.txt
> new file mode 100644
> index 0000000..cdfdeed
> — /dev/null
> +++ b/README.txt
> @@ -0,0 +1 @@
> +octave,python,シェルスクリプト,javaなどでよく使うコマンドがまとまっているリポジ
●ログで変更した場所のみを見る
$ git log –stat
> commit 568d803956316ed188298b3345c65eb0fc155a27
> Author: varlal <hoge@gmail.com>
> Date: Sat Dec 14 02:11:05 2013 +0900
> Readme commit
> README.txt | 1 +
> 1 file changed, 1 insertion(+)
4. 現在のファイル状態の確認
$ git status
# On branch master
# Changes not staged for commit:
# (use “git add <file>…” to update what will be committed)
# (use “git checkout — <file>…” to discard changes in working directory)
#
# modified: README.txt
#
# Untracked files:
# (use “git add <file>…” to include in what will be committed)
#
# README.txt~
no changes added to commit (use “git add” and/or “git commit -a”)
現在の情報を確認したあとは・・・
- まだステージにない(作業ディレクトリにある)modifiedファイルがある場合、addするか・checkoutするか!
- まだコミットされてない(ステージにある)modifiedファイルがある場合、commitするか・(resetする??)
- Untracked filesがある場合は、addするか・rmでファイルを削除するか・無視しておk!
5. 差分の確認
▶ステージに上げる前や、コミットする前に変更する内容(差分)を確認する
まだステージない(作業ディレクトリにある)modifiedファイルがある場合の差分の確認
$ git diff
> diff –git a/README.txt b/README.txt
> index cdfdeed..203764d 100644
> — a/README.txt
> +++ b/README.txt
> @@ -1 +1,2 @@
> octave,python,シェルスクリプト,javaなどでよく使うコマンドがまとまっているリポジ
> +テスト的なリポジトリでも有ります。
まだコミットされてない(ステージにある)modifiedファイルがある場合の差分の確認
$ git diff –cached
> diff –git a/README.txt b/README.txt
> index cdfdeed..203764d 100644
> — a/README.txt
> +++ b/README.txt
> @@ -1 +1,2 @@
> octave,python,シェルスクリプト,javaなどでよく使うコマンドがまとまっているリポジ
> +テスト的なリポジトリでも有ります。
6. git管理に含めない設定
.gitignoreファイルを作り、中に無視したいファイルを記述する。
*.log
*~
などを書いておくとそのファイルはステージに上がらない。コミットもできない。
こうすることで、git add . が使いやすくなる!
7.gitで追加したファイルに関して注意点
一度gitに追加したファイルは、gitの管理下に置かれるため、普通にファイル削除したりしてはいけない。
削除や移動はgitコマンドで行う。
$ git rm/ git mv
8.直前のコミットを変更
直前のコミットでちょっとしたミスをしてしまった時に、新たにコミットしてもいいんだけど、コミット履歴が意味の無いまとまりになってしまう。それを回避するために直前のコミットを上書きする。
$ git commit –amend
9.バージョン間を移動
バージョン管理の良い所はいつでも以前のバージョンに戻ることができることである。
▶下のようにいくつかのコミット履歴がある場合どこにでも戻ることができる。
コミットしてあるものは消えることはないけれど、作業ディレクトリやステージングエリアにあるものは、データが消える可能性がある(オプションによって)ので注意が必要!
$ git log
> commit b98532482670a2b57752d04349f4c7863923ce00(HEADおよびORIG_HEAD)
> Author: varlal <hoge@gmail.com>
> Date: Sat Dec 14 04:34:31 2013 +0900
> commit .gitignore file
> commit 15d34b1f5b22d9a841697a1651dd347e84252455(2回目のコミット)
> Author: varlal <hoge@gmail.com>
> Date: Sat Dec 14 04:05:26 2013 +0900
> commit graph directory and CSV2graph script.
> test.csv is test file.
> commit 568d803956316ed188298b3345c65eb0fc155a27 (はじめのコミット)
> Author: varlal <hoge@gmail.com>
> Date: Sat Dec 14 02:11:05 2013 +0900
> Readme commit
過去のバージョンに移動
$ git reset –hard HEAD(直前のコミットのバージョンに移動)
$ git reset –hard HEAD^(直前の一つ前のコミットのバージョンに移動)
$ git reset –hard コミットID(指定したコミットIDのバージョンに移動)
▶上のgit log状態からHEAD^に移動した場合・・・
HEAD is now at 15d34b1 commit graph directory and CSV2graph script.
varlal@varlal-FMVDA4E041:~/git/mycommand$ git log
commit 15d34b1f5b22d9a841697a1651dd347e84252455
Author: varlal <hoge@gmail.com>
Date: Sat Dec 14 04:05:26 2013 +0900
commit graph directory and CSV2graph script.
test.csv is test file.
commit 568d803956316ed188298b3345c65eb0fc155a27
Author: varlal <hoge@gmail.com>
Date: Sat Dec 14 02:11:05 2013 +0900
Readme commit
最新のバージョンに移動
$ git reset –hard HEAD(最新のコミットのバージョンに移動)
10. ブランチを使う
$ git branch
> * master
・・・続きは今度書いておく!
コメント