開発 備忘録 git と github

[fusion_builder_container backgroundcolor=”” backgroundimage=”” backgroundrepeat=”no-repeat” backgroundposition=”left top” backgroundattachment=”scroll” video_webm=”” video_mp4=”” video_ogv=”” video_preview_image=”” overlay_color=”” overlay_opacity=”0.5″ video_mute=”yes” video_loop=”yes” fade=”no” bordersize=”0px” bordercolor=”” borderstyle=”” paddingtop=”20px” paddingbottom=”20px” paddingleft=”0px” paddingright=”0px” menu_anchor=”” equal_height_columns=”no” hundred_percent=”no” class=”” id=””][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_text]

gitについて再復習

gitについては、こちらでご紹介しました。分散型バージョン管理システムでしたね。
今回は、git と GitHubの関係に言及しますが、その前に、こちらのページを御覧ください。
@IT ガチで5分で分かる分散型バージョン管理システムGit (3/6)
上記の記事の中で、リモートリポジトリとローカルリポジトリの関係が非常にわかりやすいです。

GitHubを一言で言うと

先ほどの記事をお読みいただくと、GitHubというのがリポジトリのホスティングサービスであろうと想像した方が多いかと思います。それは、おそらく正しいのですが、最近のGitHubは、チームで開発をするためのたくさんの機能を提供し始めています。
一例を上げましょう。例えば、ソースコードを単体(git等は使わず)に登録してスクリプトをブログなどに貼り付ける機能(GitHub Gistという名称です)も提供しています。以下は、以前MacVimの設定でご紹介した .bashrcに追加するコードです。いかがでしょうか?きれいに、早く、貼り付けられますよね。

GitHub Gistは、下記のような画面になります。GitHubにログイン後、右上のGistというリンクから、登録の画面に移ります。とても簡単です。
githubgist
どうですか?簡単ですよね。このようにGitHubには、とても便利な機能が追加されています。具体的には、以下のような機能です。

  • Issue(日本語ではチケット)・マイルストーンの管理機能
  • ネットワークグラフ機能
  • Wiki,Webホスティング機能

等の機能が備えられています。

Gitの準備

Gitの設定ファイルは、~/.gitconfig に存在しています。この設定ファイルに情報を登録するには、

$ git config –global user.name “your name”
$ git config –global user.email XXXX@XXXXX.XXX

とターミナルで打ちます。ここで、.gitconfigを確認しましょう。

$ cat ~/.gitconfig
[user]
name = your name
email = XXXX@XXXXX.XXX
[color]
ui = auto

正しく名前、メールアドレスが記録されていれば成功です。同様に、gitのコマンドで、表示させることができます。

$ git config –list
user.name=your name
user.email=XXXX@XXXXX.XXX
color.ui=auto
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=false

SSL通信するための鍵ファイル作成

SSHを使って鍵ファイルを作りましょう。これは、SSL通信を使って、通信を暗号化するためのものです。注意としては、SSL通信が必要ない場合には、ここの手順は、割愛してかまわないことです。ここでは、鍵のファイル名をgithub_rsaにしました。

$ cd ~/.ssh/
$ ssh-keygen -t rsa -C "メールアドレス"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ユーザー名/.ssh/id_rsa): github_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in github_rsa.
Your public key has been saved in github_rsa.pub.
(省略)

$ ls -a ~/.ssh/

として、先ほど指定したファイル名のファイルができていたら成功です。パスワードは、忘れないようにしてください。
次に公開鍵をGitHubに登録します。まずは、ローカルでクリップボードに公開鍵をコピーします。

$ pbcopy < github_rsa.pub

下記の図にあるように、GitHub のサイトにログインし、User settings-SSH KeyにSSHの公開鍵を貼り付けます。
githubssh
ターミナルのsshコマンドで接続します。

$ ssh -l git -i ~/.ssh/github_rsa github.com  
PTY allocation request failed on channel 0
Hi pakiln! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

これで、接続の確認がとれました。あなたのマシンと、GitHubがつながったのです。

公開するディレクトリを共有する

公開するルートディレクトリで

$ git init
をしてください。以前このブログでも行いましたので、こちらを参考にしてください。
次に、remoteの設定を行います。GitHubで、新しいプロジェクトを作成しておいてください。ターミナルに戻り、
$ git remote add origin git@github.com:(GitHubのユーザ名)/(GitHubのプロジェクト名).git
とします。それでは、いよいよGitからGitHubにpushします!

$ git push origin master

ここで、エラーが出る場合には、

$ git fetch
$ git merge origin/master

として、マージをするようにします。

いかがでしょうか?これが、基本的なGit と GitHub の使い方になります。

[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]