ablog

不器用で落着きのない技術者のメモ

github のリポジトリにディレクトリを作成して commit する

github を使ってみた - abloggithubリポジトリを作成して、
Windows でも github を使ってみた - ablogWindows から git を使えるようにしたので、
今回、Windows から github にファイルを commit してみた。

$ cd /cygdrive/c/git/yoheia/yoheia
$ mkdir -p oracle/sql
  • getcols.sql を /cygdrive/c/git/yoheia/yoheia に置く。
  • getcols.sqlリポジトリに commit する。
$ ls
getcols.sql
$ git add getcols.sql
$ git commit -m 'get column name of specified table'
[master]: created 6760fcb: "get column name of specified table"
 1 files changed, 24 insertions(+), 0 deletions(-)
 create mode 100755 oracle/sql/getcols.sql

どうやってディレクトリを作成するんだろうと思ってたら、ディレクトリ作成してその中にファイルを作成して、ファイルを commit したらよいだけみたい。


http://github.com/yoheia/yoheia/tree/master を確認してみる。
あれ? commit したのに oracle ディレクトリがない。たぶんローカルリポジトリgithub に同期してやるひつようがあるんだな。それにこのマシンは githubリポジトリを作成したマシンじゃないからキーペアを生成して Public Key を gihub に登録してやる必要がありそうだ。

  • キーペアを作成する。
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (...):<RETURN>
Enter passphrase (empty for no passphrase):<RETURN>
Enter same passphrase again:<RETURN>
Your identification has been saved in ...
Your public key has been saved in ...
The key fingerprint is:
f8:69:5e:13:90:f5:2f:db:60:16:55:cc:4f:02:09:06 ...
The key's randomart image is:
...
  • ~/.ssh/config を作成する。
$ vi ~/.ssh/config
Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile ~/.ssh/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes
  • Sign in to GitHub · GitHub にログインする。
  • [account]-[SSH Public Keys]-[add another public key] を選択する
    • [Title] に id_rsa.pub の末尾の「==」より後をを貼り付け(「==」含まない)、
    • [Key] に id_rsa.pub の先頭(「ssh-rsa」含む)から「==」までを貼り付けて(「==」含む)、
    • [Add Key] を押す。
  • ローカルリポジトリgithub に同期させる。
$ cd /cygdrive/c/git/yoheia
$ git config --global user.name "yoheia"
$ git config --global user.email ....@gmail.com
$ git remote add origin git@github.com:yoheia/yoheia.git
$ git push origin master
Counting objects: 6, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 672 bytes, done.
Total 5 (delta 0), reused 0 (delta 0)
To git@github.com:yoheia/yoheia.git
   20f872d..6760fcb  master -> master

でけた。


なるほどなるほど。「分散型」バージョン管理システムと呼ばれる理由がわかった気がする。


追記(2009/07/17):
最初にリポジトリを作った Mac 側に同期してみた。

$ git pull origin master
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From git@github.com:yoheia/yoheia
 * branch            master     -> FETCH_HEAD
Updating 20f872d..6760fcb
Fast forward
 oracle/sql/getcols.sql |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)
 create mode 100755 oracle/sql/getcols.sql