==Git チュートリアル==
[[Git]]
*この本からのメモ
{{amazon|427406767X}}
===ファイル(index.html)の追加===
=====index.html=====
<<html>> <<body>> <<h1>>Hello World.<</h1>> <<body>> <</html>>
===リポジトリへの追加===
$ git log
commit 6b4f2e70a4e1950083000148ec8b625be8a86eee
Author: YAGI Hiroto <<piroto@ryujyu.typea.info>>
Date: Mon Dec 6 22:10:38 2010 +0900
==プロジェクト作業の開始==
===index.html の編集===
*<<head> > と <<title> > を追加 <<html>> <<head>> <<title>>Hello World in Git<</title>> <</head>> <<body>> <<h1>>Hello World.<</h1>> <</body>> <</html>>
===git status===
*作業ツリーをGitがどう認識しているか確認
# On branch master
# Changed but not updated:
# (use "git add <<file>>..." to update what will be committed) # (use "git checkout -- <<file>>..." to discard changes in working directory)
#
# modified: index.html
#リポジトリ
<<blockquote>>ステージングエリアは、作業ツリーとリポジトリの間にあるバッファ。リポジトリにコミットしたい変更だけをアレンジ。<</blockquote>>
===変更をステージ(再度 git add)する===
# On branch master
# Changes to be committed:
# (use "git reset HEAD <<file>>..." to unstage)
#
# modified: index.html
====git commit====
*-m パラメータは複数追加でき、それぞれ段落になる
$ git commit -m "add <<head> > and <<title> > to index" \ > > -m "This allows for a more semantic document." [master 372e445] add <<head> > and <<title> > to index
1 files changed, 3 insertions(+), 0 deletions(-)
$ git log -1
commit 372e445146791569f4e2b68d04d730c58e6b2ec9
Author: YAGI Hiroto <<piroto@ryujyu.typea.info>>
Date: Mon Dec 6 22:48:06 2010 +0900
add <<head> > and <<title> > to index
This allows for a more semantic document.
*master は Gitでのデフォルトブランチ名
*RB は Release Branch の略
<<blockquote>>これで、リリース準備が整ったブランチが切り離せたので、影響をあたえずに変更できる<</blockquote>>
====HTMLをさらに編集====
:
<<body>> <<h1>>Hello World.<</h1>> <<ul>> <<li><><a href="bio.html">>BIografy<</a><></li>> <</u>> <</body>>
:
====変更をコミット====
# with '#' will be ignored, and an empty message aborts the commit.
#
# Committer: root <<root@ryujyu.typea.info>>
#
# On branch master
# Changes to be committed:
# (use "git reset HEAD <<file>>..." to unstage)
#
# modified: index.html
====リリースバージョンのHTMLを修正====
* meta タグを追加
<<head>> <<title>>Hello World in Git<</title>> <<meta name="description" content="hello world in Git" />> <</head>>
====コミット====
$ git commit -a
===リベース===
*以下のためには、git rebase コマンドを利用する
<<blockquote>>現時点で、ブランチが2つあり、それぞれが関知していないコミットを持っている。RB_1.0(リリース1.0) に変更がなされたことを、master ブランチ(リリース2.0向けの作業)にも知らせる必要がある。<</blockquote>>
*ブランチから変更を取り出してきて、別のブランチの先頭で再生するのがリベース(rebase)
=====この状態を=====
=====内容を確認=====
$ cat index.html
<<html>> <<head>> <<title>>Hello World in Git<</title>> <<meta name="description" content="hello world in Git" />> <</head>> <<body>> <<h1>>Hello World.<</h1>> <<ul>> <<li><><a href="bio.html">>BIografy<</a><></li>> <</u>> <</body>> <</html>>
===タグからブランチを作る===
====tar ボールを作る====
$ git archive --format=tar --prefix=mysite-1.0/ 1.0 | gzip > > mysite-1.0.tar.gz
$ ls
index.html mysite-1.0.tar.gz
====zip ファイルを作る====
$ git archive --format=zip --prefix=mysite-1.0/ 1.0 > > mysite-1.0.zip
$ ls
index.html mysite-1.0.zip
|git status
|-
|svn switch <<branch>>|git checkout <<branch>>
|-
|svn merge <<branch>>|git merge <<branch>>
|-
|svn revert <<file>>|git checkout <<file>>
|-
|}