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
プロジェクトを作る @ローカル
ローカルでの作業を、ローカルの 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: GitHub の API でできるっぽい。
作業リポジトリに、"origin" とゆー名前で github のリポジトリをリモートリポジトリとして追加する。
$ git remote add origin git@github.com:bowbow99/symbol-macrolet.git
んで、作業リポジトリに保存されたものを origin に突っ込む
$ git push origin master