Git/gist

Gitはバージョン管理システムと呼ばれるシステムの一つでファイルの履歴を管理するシステムである。
他のバージョン管理システムとしては、CVS、Subcersionなどがある。

GIT:
使い方:
Gitの使い方を示す。
初期設定:
適当な作業ディレクトリを作成しそのディクレトリ上でGitの初期化を行う。
$mkdir WorkingDirectory
$cd WorkingDirectory
$git init
Initialized empty Git repository in $HOME/WorkingDirectory/.git/
Gitディレクトリが作成されているのがわかる。
$ls -a
./  ../  .git/
ユーザー設定。
$git config --global user.name 'ABC XYZ'
$git config --global user.email test@test.jp
上記の設定が~/.gitconfigに反映されているのがわかる。
$cat ~/.gitconfig
[user]
name = ABC XYZ
email = test@test.jp

【追記】(2013/1/3):
WorkingDirectory下に.gitignoreというファイルを作成し中にファイル/ディレクトリ名を記載すれば管理対象から外れる。
例:
$more .gitignore
#emacs backup files
*~
#Not for public
protect/

作業:    
Gitでは作業ディレクトリ、インデックス、履歴(コミット)との間でファイルのやり取りを行うことによってファイル管理が行なわれている。

まず、作業ディレクトリに対象ファイル(README)を作成する。
$touch README
これをインデックスにコピーを行う。
$git add README
履歴に保存
$git commit README
コミットするときの注意点として変更点のメッセージなどを載せる必要があり上記のやり方でコミットを実行するとエディタが起動しコメントを求められる。
コミットするときに同時にコメントを載せる方法として
$git commit README -m 'First Commit'
などがある。
これでREADMEファイルがインデックスされコミットされたことになる。
ファイルの状況を確認するにはgit statusコマンドでわかる。
$git status
# On branch master
nothing to commit (working directory clean)
現在はすべてが管理されていることを示している。
例えば、管理されているファイルに変化もたらせるように
$echo "test changes" > README
$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
#
no changes added to commit (use "git add" and/or "git commit -a")
と、not staged(インデックスされてない)項目に READMEというファイル名が上がっているのがわかる。
このように、何かがインデックス、コミットされてないとgit statusで知らせてくれる。
ここまでが一連の流れになる。

【追記】(2013/1/3):
githubに上げたものを消す方法の一つとして、
git rm --cached file
と入力し、順にadd, commit, pushをすると消せる。
作業ディレクトリからファイルは消えない。

【追記】(2013/4/16):
一連の流れの再説明:
github.comでのアカウント取得、 ssh設定は済んでいることを仮定して:
git init
git add --all
git commit -a -m 'First Commit'
git remote add origin git@github.com:XXXXXXXXXXX
git remote push origin master

GitHubの利用:
GitHubは自分の理解ではgitでコミッタしたものを公開するためにgithubへ上げるものと捉えている。
手順はhelp.github.comにわかりやすく書かれている。
(ID取得などの手順は省く)
まず最初にGitHub上にリポジトリを作成する。
リポジトリと同名のディレクトリを作成する。
$mkdir test
ディレクトリ上で初期化を行う。
$cd test
$git init
ファイルを作成。
$touch README
追加、コミット
$git add README
$git commit -m 'first commit'
プッシュを行う。
$git remote add origin https://github.com/username/test.git
$git push origin master
*) username:自分のユーザID
ここでgithubを見るとファイルがアップされているのがわかる。


gist:
gistはgithubから提供されているペーストビンサービスの一種である。
平たく言えばソースコードを載せるのに適しているサイトである。
で、ここにソースコードを載せるにはソースファイルからコピペ(コピー&ペースト)という方法とgisty, gistコマンドの利用による方法がある。
gistyをいれると
$gisty post 001.py
で投稿できる。
gistコマンドの場合だと
$gist < 001.py
となる。

gistyを入れる場合rubyで書かれており、gem環境でインストールが必要となるのでrubygemsなどをパッケージマネージャ(apt-get, yum...)などでインストールし
$git clone git@github.com:swdyh/gisty.git
でソースファイルを取得し、ディレクトリに移動し
$gem install gisty
と入力しインストールが始まる。
他にも環境設定が必要となるが、それらは
を参考に。


参考文献/サイト

Comments