【Git】ローカルで利用する場合1

今回はGitをローカルで利用する上で、知っておきたいコマンドを簡単に紹介します。
各コマンドの詳細はまた後日

よく使うコマンド

コマンド名説明
git initGitでリポジトリを作成するコマンド。最初に実行する必要があります。
git add [filename] [...]Gitで管理するファイルをステージングに追加するコマンド。実質コミットはされない。
git commit実際にコミットする
git cloneリポジトリの複製を作成する
git diff前回のgit addからの変更点を表示する。
git statusステージされているファイルや、ステージされていないファイルなどを確認できる。
git logリポジトリのログを表示する
git show最後にコミットした内容を表示する
git resetコミットを取り消す
git revert コミット名コミットを取り消す(ログに残る)
git blame [filename]ファイルにたいして1行ずつ、どのコミットで記録されたかを表示する
git checkoutブランチの切り替えや、コミットされた状態に戻したりする
git branchブランチ情報の表示や作成を行う

実際にはもっとあるので、後日追加するかも…


余談(そんなのあるんだ程度で今はOK)

コマンド名説明
git gcリポジトリ内の最適化を行う。
git stash 保存名現在の作業ツリーの状態を一時的に退避させる。
git stash list一時的に退避させた作業ツリーの一覧を表示させる。
git stash pop一時的に退避させた作業ツリーを呼び出す。

大まかな流れ


Gitリポジトリを作成する

$ mkdir ~/workdir
$ cd ~/workdir
$ git init

この状態で、下記のようになっています。

$ ls -a
.  ..  .git

このようにGitリポジトリに必要なファイル類が「.git」ディレクトリに作成されます。


初回コミット

とりあえず、適当なファイルを作成します。

$ echo "test" > testfile

この状態で下記のコマンド実行すると

$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       testfile

こんな感じで、「Untracked files」に作成した「testfile」が入っています。
ここで、

$ git add .

で、カレントディレクトリ配下のファイルをすべてインデックスに記録します。
このインデックスに記録する事を「ステージする」または「ステージング」と言います。
この状態で

$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   testfile
#

今度は Changes to be committed に作成した「testfile」が入っています。
つまりコミットされる対象になった事を示しています。

この状態で問題なければコミットを行います。

$ git commit -m '初回コミットです。'
[master (root-commit) 6e591e1] 初回コミットです。
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 testfile

これでGitのローカルリポジトリへのコミットが完了しました。
今回は簡略化するために、コミット時のコメントを「-m」オプションで指定しましたが、
通常運用する場合、次のルールにしたがってログを記録していきましょう。
また、「-m」を省略すると、エディタが起動します。

要約
[空行]
詳細な説明

ログを見る

先ほど、初回コミットが完了しましたので、ログを確認してみましょう。


git log
$ git log
commit 6e591e10a296042a41228dbeae819e72c571d68b
Author: scot_exist <メアド>
Date:   Thu Jan 6 01:15:59 2011 +0900

    初回コミットです。

git show
$ git show
commit 6e591e10a296042a41228dbeae819e72c571d68b
Author: scot <scot@yukiten.com>
Date:   Thu Jan 6 01:15:59 2011 +0900

    初回コミットです。

diff --git a/testfile b/testfile
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/testfile
@@ -0,0 +1 @@
+test

先ほどの「git log」の出力に加え、ファイルの変更点も表示されます。




Gitには、それぞれのコマンドに対して大量のサブオプションが存在します。
次回以降は、サブオプションを含めて少しずつ紹介していきます。



categories Git, IT関連 | Tags: , , | scot_exist | datetime 2011年1月6日 01:56 | コメントは受け付けていません。

CentOS 5.5 Git導入方法(RPM)

RPMforgeリポジトリを追加する

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
# rpm -K  rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -ivh /rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

詳細は以前書いた記事 CentOS 5.5 RPMforge 導入方法 を参照してください。


gitのインストール

# yum --enablerepo=rpmforge install git

これだけ


個人の識別情報の設定(git config)


設定方法

Gitを導入したらまずはじめに個人の識別情報の設定を行います。
Gitを利用したい個々のユーザで実施する必要があります。

$ git config --global user.name "ユーザ名"
$ git config --global user.email メールアドレス

設定の確認

$ git config --global --list

このコマンドで、上で設定した内容が表示されるはずです。
なお、この設定値は各ユーザのホームディレクトリに保存されます。

$ ~/.gitconfig

設定しておくと嬉しい設定


基本的な設定(core)

基本的な設定を行う事が出来ます。
例えば次のような設定が行えます。

[core]

# 全体的な「ignore」ファイルのパスの設定
excludesfile = ~/.gitignore
# CRLFを自動変換
autocrlf = input
# commit時など、コメントを入力する際に起動するエディタプログラムを指定
editor = vim
# logの確認等を行う際に起動するページャプログラムを指定
pager = "lv -c"

色づけ設定(color)

ステータスの確認や、diff等を行う際に、画面に色を付けて出力する設定です。

[color]
status = auto
diff = auto
branch = auto
interactive = auto
grep = auto

別名設定(alias)

各Gitコマンドにおいて、別名(エイリアス)を設定します。
下記の例では、
「status」コマンドを「st」
「commit」コマンドを「ci」
と別名を指定しています。

[alias]
st = status
ci = commit

参考URL

他にも、便利なエイリアス等があります。
gitconfigオススメ設定
https://github.com/yuroyoro/dotfiles/blob/master/.gitconfig

自分的には下記の項目だけ変更して使っています。

ci = commit -a
↓
ci = commit

commit -a だと、変更点すべてが、ステージに上げられてしまうため、不便かなと…


実際運用する場面では

$ git ad filename
$ git ci

の方が自然かな?

Gitの詳細な使い方はまた別の機会に紹介します☆


入門Git-濱野-純-Junio-Hamano

categories Git, IT関連, Linux/Unix | Tags: , , , , | scot_exist | datetime 2011年1月3日 14:04 | コメントは受け付けていません。

2011年抱負とリニューアル

祝 2011年

改めまして「あけまして、おめでとうございますm(__)m」
ドラえもん誕生まで後101年ですよ☆


冗談はさておき…
何年も放置していましたが、ブログを復活させました。祝リニューアル★
恐らく4年近く「工事中」のまま放置プレイしていたサイトですが、装いを新たに立ち上げなおしました。
自宅サーバですので、まだ沢山問題が見つかるかもしれませんが、気付いたら教えてください。


以前勤めていた会社で色々あってからというもの、技術の習得や、情報収集、情報の発信等々まったく手付かずになってしまっており、自分自身の技術力や能力アップに伸び悩んでいました…。

でも、昨年の2010年7月に転職に成功し、新しいスタートを切る事が出来ました。また、職場環境が変わると同時に、ほんと幅広い知識や経験を持っている人と出会う事が出来、自分にとってとても良い刺激になってます。

なので、これを機に2011年からは今一度、頑張って色々新しい事に挑戦していこうかなと思います。

てなわけで、一発目としまして、情報発信元を作る事からはじめてみました。

ブログの内容的にはIT技術がメインになるかとは思いますが、車や、音楽、夜景、等々 趣味の事も取り入れていけたらいいなぁと思っています。

こんなサイトですが、よろしくお願いします。



「2011年の抱負」

話は変わりますが、2011年の抱負をここに列挙したいと思います。

  1. Androidアプリを1個は作る
  2. 禁煙する
  3. 体重-10kgする
  4. ひと月に1回は人に「すごいね」って言ってもらえるようになる
  5. 技術力の底上げをする(Linux, Web系, プログラミング等々)
  6. 貯金する
  7. LPICを受けに行く(4年間ほったらかし…)
  8. 会社で報奨金もらえるような功績を残す
  9. ギターを弾けるようになる
どれだけ実現出来るかはわかりませんが、こんな目標で行きたいと思います。

では、またまたぁ~♪

categories 日記 | scot_exist | datetime 2011年1月2日 00:52 | コメントは受け付けていません。

CentOS 5.5 RPMforge 導入方法

RPMforgeとは

RPMforgeはCentOS標準のリポジトリとはでは提供していないようなパッケージを提供してくれる、サードパーティのリポジトリの事です。(http://rpmrepo.org/RPMforge


主に、新しい技術やまだ安定していない等の理由により、CentOSの標準リポジトリに用意されなかったソフトウェアをインストールする場合や、PHP等の最新バージョンをインストールする場合に利用する事が多いかと思います。


RPMforgeリポジトリの導入

RPMforgeリポジトリは、rpmパッケージをインストールする事で簡単に利用する事が可能です。


yumプラグインの導入(利用リポジトリの優先順位)

CentOS標準リポジトリとRPMforgeリポジトリの両方を利用する場合、恐らく多くのパッケージはCentOS標準よりもRPMforgeの方がバージョンが新しいでしょう。


そのため、単純にinstallやupdateを行った場合、本来意図していなかったパッケージまでもRPMforgeのパッケージを利用してしまう恐れがあります。


そのため、事前に各リポジトリの優先順位(Priorities)を設定しておき、RPMforgeのリポジトリの優先順位を低く設定する事で、この危険を回避する事が出来ます。


yum には yum-priorities と言う、リポジトリの優先順位を設定するプラグインが存在しますので、これをインストールします。

# yum install yum-priorities

RPMforgeパッケージのインストール


RPMforgeからパッケージをダウンロード

http://packages.sw.be/rpmforge-release/
下記を参考にして対応するアーキテクチャのファイルをダウンロードしてください。


GPG keyのインポート
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

パッケージの確認
# rpm -K  rpmforge-release-0.5.2-2.el5.rf.i386.rpm

パッケージのインストール
# rpm -ivh  rpmforge-release-0.5.2-2.el5.rf.i386.rpm

利用リポジトリの優先順位設定

各セクションに「priority」の設定を追加します。
priorityは数が小さい方が優先されます。


また、RPMforge のリポジトリについては、必要な時にその都度、有効化するようにします。(私の場合)
そのため、「rpmforge.repo」の「enabled」設定を「0」に変更しています。


/etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1      ☆★追加★☆

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1      ☆★追加★☆

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1      ☆★追加★☆

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1      ☆★追加★☆

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2      ☆★追加★☆

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&amp;arch=$basearch&amp;repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1      ☆★追加★☆

/etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 5 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0   ☆★0に変更★☆
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority=10    ☆★追加★☆
:
:

RPMforgeリポジトリを有効化してyumを利用する

# yum --enablerepo=rpmforge install git

「eneblerepo」オプションを利用する事で、そのコマンドに限って、yumの設定ファイルの内容を上書きする事が出来ます。

categories IT関連, Linux/Unix | Tags: , , , | scot_exist | datetime 2011年1月1日 16:30 | コメントは受け付けていません。

Git 無視するファイルの指定方法(.gitignore)

Git において、リポジトリ管理対象から特定のファイルを除外する方法を紹介します。

はじめに Git のローカルリポジトリのルートに「.gitignore」ファイルを作成します。
「.gitignore」ファイル内は次のように記述する事が出来ます。


# ファイル名が「.cache」で終わるファイルを無視する場合
*.cache

# 特定ディレクトリ配下のファイルはすべて無視する場合
tmp/

# トップディレクトリの「.cache」で終わるファイルだけ無視する場合
# この場合「/」は「.gitignore」ファイルのディレクトリから相対パスで評価されます。
/*.cache

# 「.cache」で終わるファイルは無視するが「juuyo.cache」だけは無視しない場合
# 「!」で始まる設定は、無視するファイルから「除外する」と言う意味になります。
*.cache
!juuyo.cache

# 「.cache」で終わるファイルは無視するが
# 「directory」ディレクトリ配下の「.cache」で終わるファイルは無視しない場合
*.cache
!directory/*.cache



「.gitignore」ファイルにマッチしたファイルがGitのリポジトリの管理対象から除外されます。

既にステージング(git add)してしまったファイルを除外するには

「git add」したファイルを取り消すには下記のコマンドを利用します。

$ git rm --cached ファイル名

「–cached」を指定する事で、実ファイルは削除されません。


入門Git-濱野-純-Junio-Hamano

categories Git, IT関連 | Tags: | scot_exist | datetime 2010年12月31日 00:00 | コメントは受け付けていません。