GitHub

準備

## インストール
$ apt-cyg install git

## git の設定
$ git config --global user.name "bowbow99"
$ git config --global user.email bowbow99@gmail.com
$ git config --global ui.color auto

## github 使う設定
$ apt-cyg install openssh
...
$ ssh-keygen -d -f ~/.ssh/github_dsa
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
...
$ vim ~/.ssh/config
Host github.com
   User git
   Port 22
   Hostname github.com
   IdentityFile ~/.ssh/github_dsa
   TCPKeepAlive yes
   IdentitiesOnly yes

GitHub の account 画面で ~/.ssh/github_dsa.pub の内容を登録。

プロジェクトを作る @ローカル

ローカルでの作業を、ローカルの git repository で管理しながら進める。

## ~/work/ にて
$ mkdir symbol-macrolet
$ cd symbol-macrolet
$ git init

どうやらこれでローカルのリポジトリが作られ、同時にここ(~/work/symbol-macrolet/)が作業ディレクトリになる。

おもむろに xyzzy で ~/work/symbol-macrolet/symbol-macrolet.l 作って保存したら

$ git add .
$ git commit -m "Importing symbol-macrolet.l."

add . で git の "index" にそこにあるファイルが登録される。この index というのは「commit 待ちのファイルのリスト」のようだ。で git commit すればローカルのリポジトリにコミットされる。

git add と git commit、というか index について

Subversion では一度 svn add したファイルは単に編集して svn commit でよかったんだが、git では(基本は)編集するたびに git add してから git commit するらしい。

なんでそんなめんどいことになってるのかまだわからんけど、Subversion のような手順で操作したいなら、一度 git add したものは git commit -a で勝手に git add してくれる。

git add -p とか見るに、「(ローカル)リポジトリに保存された状態」から「現在の working directory の状態」の間、というか途中までだけを commit とかできるのかも知れん。そうだったら commit すんの忘れて変更しまくった挙句、それらをまとめて git commit -m "あれやった。これやった。あとこれもやった。あとー…いろいろやった。" みたいなことになるのが防げそう。

プロジェクトを GitHub に突っ込む

まず GitHub の自分のページで Create a Repository とかなんとかから Repository を作る。git コマンドで GitHub に新しい repository を作るようなことはできないようだ。MEMO: GitHubAPI でできるっぽい。

作業リポジトリに、"origin" とゆー名前で githubリポジトリをリモートリポジトリとして追加する。

$ git remote add origin git@github.com:bowbow99/symbol-macrolet.git

んで、作業リポジトリに保存されたものを origin に突っ込む

$ git push origin master