Git Immersion (Git漬け)を訳しながら使い方を覚えてみる.その4

なかなか進められないけど地道にアップします。

LAB 7 ステージに乗せてコミットする

Gitにおいて分離されたステージに乗せる操作は,これまで自分でソースの管理をする必要があった状況から抜け出すための哲学にのっとっている.

自分の作業用ディレクトリに変更を加え続けることができ,またソース管理に関わりたいときには,gitによって細かいコミットの実際の作業記録における変更を残しておける.

たとえば,a.rb, b.rb, c.rbという3つのファイルを変更した時について考えよう.全ての変更をコミットしたいが,a.rb とb.rb は一つのコミットで,c.rb は最初の二つのファイルと論理的につながらないので別のコミットにすべきである.

こうすればよい.

git add a.rb

git add b.rb

git commit -m “Changes for a and b”

git add c.rb

git commit -m “UNrelated change to c”

ステージに上げる操作とコミットの操作を分けることで,コミットに加える変更を調整することができるようになる.

LAB 8 変更をコミットする

目標:リポジトリに変更をコミットする方法を学ぶ

1.変更をコミットする

OK.ステージングについてはもう十分だろう.ステージングした変更をリポジトリにコミットしてみよう.

以前最初のバージョンのhello.rbファイルをリポジトリにコミットするためにgit commitを使った時,-mフラグを含めてコマンドラインからコメントを追加した,そのcommitコマンドによってコミットに対話的にコメントを編集することができる.それじゃあやってみよう.

コマンドラインで-mフラグを省くと,gitはエディタを選択するように求めてくる.エディタは以下のリストから選ばれる.(優先度順)

・環境変数のGIT_EDITOR

・core.editorの設定

・環境変数のVISUAL

・環境変数のEDITOR

// 自分の環境では環境変数で設定するのがうまくいかなかったので

// git config –global core.editor “vi”

エディタの設定をしたらcommitで状態を見てみよう.

git commit

設定したエディタが出てくるので,最初の行にUsing ARGVと書き加える.

Using ARGV

# Please enter the commit message for your changes. Lines starting

# with ‘#’ will be ignored, and an empty message aborts the commit.

# On branch master

# Changes to be committed:

# (use “git reset HEAD <file>…” to unstage)

#

# modified: hello.rb

#

[master 8888ecf] Using ARGV

1 files changed, 1 insertions(+), 1 deletions(-)

2.状態チェックする

最後にもう一度状態をチェックしてみよう.

git status

すると,出力はこうなるはず.

# On branch master

nothing to commit (working directory clean)

作業用ディレクトリはクリーンで,続行できる状態だ.

Git Immersion (Git漬け)を訳しながら使い方を覚えてみる.その3

1日2項目じゃ遅いかな?と思いはじめた今日この頃です。

ついでに、英語力も足りない怪しい直訳がダサすぎて死にそうなんて言えない←

LAB 5 変更を加える(作業用ディレクトリ)

http://gitimmersion.com/lab_05.html

目標:作業用ディレクトリの状態の追跡の仕方を学ぶ

1.”Hello, world”プログラムを変更する

HelloWorlsdプログラムを変更してコマンドラインから引数を一つとれるようにする.

変更後のファイルは次のようになる.

vi hello.rb

puts “Hello, #{ARGB.first}!”

2.状態を調べる

作業用ディレクトリの状態を調べてみよう.

git status

出力はこうなる.

# 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: hello.rb

#

no changes added to commit (use “git add” and/or “git commit -a”)

最初に注意しないといけないのはgitはhello.rbが変更されたことを検知していることだ.でもgitはこれらを通知されてはいない.

もう一つ注意すべきは,この状態メッセージは次に何をする必要があるのか示唆してくれる.

もしこれらの変更をリポジトリに加えたいなら,git add コマンドを使えばいい.

そうでなければgit checkout コマンドで変更を破棄することができる.

3.次の段階へ

変更をステージに乗せてみよう.

// stage -> コミット前の緩衝地帯のことらしい.

LAB 6 変更をステージングする

http://gitimmersion.com/lab_06.html

目標:最新のコミットの変更をステージングする方法を学ぶ

1.変更を加える

ではgitに変更を反映させて状態を見てみよう.

git add hello.rb

git status

# On branch master

# Changes to be committed:

# (use “git reset HEAD <file>…” to unstage)

#

# modified: hello.rb

#

hello.rbファイルの変更が反映された.

これはgitはその変更内容を知っているが,この変更はまだリポジトリに記録されてはいない.

次のコミット操作がリポジトリに変更を加える.

結局変更をコミットしたくない場合には,git reset コマンドを使って変更をステージから削除することができることをstatusコマンドが思い出させてくれている.

Git Immersion (Git漬け)を訳しながら使い方を覚えてみる.その2

まったり追記していきますよ.

今回はLAB3と4.

リポジトリ(倉庫,貯蔵所,宝庫)ってそのままカタカナで呼ばれてるけど,あえて訳すならなんなんだろ?

なお,作業履歴もかねているのでシェルコマンド部分も書いてます.

エディタはviを使っているので,適宜読み替えてください.

LAB3 プロジェクトを作る

http://gitimmersion.com/lab_03.html

目標:スクラッチで(=ゼロから)Gitのリポジトリを作成する方法を学ぶ

1.”Hello world”プログラムを作成する

空の作業用ディレクトリ(さっき解凍したwork)から作業を始める.

cd work

helloという名前でディレクトリを作る

mkdir hello

cd hello

hello の中にhello.rbを作成する.中身は以下.

vi hello.rb

puts “Hello, World.”

2.リポジトリを作成する

ここまでで一つのファイルからなるディレクトリができている.

このディレクトリからリポジトリを作成し,gitのinitコマンドを実行する.

git init

Initialized empty Git repository in /home/toki/git_tutorial/work/hello/.git/

3.プログラムをリポジトリに追加する

Hello, worldプログラムをリポジトリに追加しよう.

git add hello.rb

git commit -m “First Commit”

出力はこうなる.

[master (root-commit) 718f5be] First Commit

1 files changed, 1 insertions(+), 0 deletions(-)

create mode 100644 hello.rb

LAB 4 状態を調べる

http://gitimmersion.com/lab_04.html

目標:リポジトリの状態の調べ方を学ぶ

1.リポジトリの状態を調べる

git status コマンドを使えばリポジトリの状態を調べることができる

git status

# On branch master

nothing to commit (working directory clean)

このstatusコマンドはコミットされたものがないことを示している.

これはリポジトリの中が全て作業用ディレクトリの最新の状態であることを表している.

未適用の記録の変更はない.

git statusコマンドは継続してリポジトリと作業用ディレクトリの状態の差を追跡する時に使う.

Git Immersion (Git漬け)を訳しながら使い方を覚えてみる.その1

Railsや研究用のMATLABでソースを書き散らしているうちに,修正個所と内容が把握できなくなってきた.

ほぼ同じ内容のバックアップが大量にあるような状態で,手が付けられない.

と,いうわけでバージョン管理システムのGitを導入してみる.

参考にしたのはこのチュートリアル.

Git Immersion

http://gitimmersion.com/index.html

Git漬け,って感じですかね.英語漬けみたいな.

とりあえずUbuntu環境に入れてみる.

$ sudo apt-get install git-core

(※いつの間にか入れてたらしい.)

バージョンを確認.

$ git –version

git version 1.7.0.4

LAB 1 Setup

http://gitimmersion.com/lab_01.html

目標:作業の準備のためにGitを設定する

1.名前とEmailの設定

$ git config –global user.name “Your Name”

$ git config –global user.email “your_email@whatever.com”

2.行末の設定

//Ubuntuに入れたのでUnix/Mac用の設定にする

$ git config –global core.autocrlf input

$ git config –global core.safecrlf true

LAB 2 More Setup

http://gitimmersion.com/lab_02.html

目標:チュートリアル用の素材を取得して実行する準備をする

1.Gitのチュートリアルパッケージを取得する

$ wget http://onestepback.org/download/git_tutorial.zip

2.チュートリアルパッケージを解凍する

// の,前にunzipが入ってなかったのでインストール

// $ sudo apt-get install unzip

$ unzip git_tutorial.zip

git_tutorialの中身は,

html:このチュートリアルのHTMLファイル一式

work:空の作業用ディレクトリ.この中にリポジトリを作る.

repos:予めパッケージ化されたリポジトリ.workにコピーすれば任意の場所からチュートリアルを始められる.

2~3章ずつ訳してアップしていけばいいかな.