git素人がmacでgitを使えるようになってみる

gitって使った事ないです。githubからソースはダウンロードしますが、いまいちわかってないです。
というか、会社はやっとsubversionという会社なのでgitとか多分導入厳しすぎです。(一応ネットベンチャーなんですけどね)

でも昨今みんなgitgitと言ってるじゃないですか。一応エンジニアですし、やっぱり出来るようになっておいたほうがいいと思うんですよね。
ということで、git素人がmacでgit使えるようになってみようかと思います。
私みたいなgit素人が他に居る?かもしれませんので、記事に起こしながらやってみよかと思います。

誰か間違っていたら突っ込んでくださいなー。

そもそもgitって何

こういう時はwikipedia大先生に聞くのがいいですね。

git – Wikipedia

Git(ぎっと)はプログラムなどのソースコード管理を行う分散型バージョン管理システム。動作速度に重点が置かれている。Linuxカーネルのソースコード管理を目的として、リーナス・トーバルズによって開発された。

(中略)

Gitは、arch等にも採用される分散リポジトリをサポートしており、

  • 中央リポジトリからコピーする
  • コピーしたリポジトリを編集し、コンテンツの修正、追加、削除を行う
  • ローカルへコミットする
  • 中央リポジトリへ変更内容を反映させる

という形で行われる。

なるほど!subversionみたいな完全集中管理じゃなくて、ローカルリポジトリと中央リポジトリが2つあって、自分のローカル内でもバージョン管理出来るってわけか。
確かにコレはいいですな。

早速インストールしてみませう。
といっても、macの場合macports使えば簡単にインストール出来るっぽいですね。

あ、いきなりこの中央リポジトリを作ったりするのは大変そうなので、借りているSourceRepo.comでGitリポジトリをつくりたいと思います。

SourceRepo参考サイト

gitのインストール時に参考サイト

ということで、こんな感じ。

$ sudo port install git-core

ポイントは強いて挙げると”git-core”ってなってるところ?gitじゃなかったです。

インストールが無事終わったら、gitリポジトリの準備。
SourceRepoを使って作ったんで、ここからの作業はローカルリポジトリのセットアップというところでしょうか。

manji6 $ cd /development/git_workspace/symfony/
manji6 $ git init
Initialized empty Git repository in /development/git_workspace/symfony/.git/
manji6 $ git remote add origin git@[sourcerepoドメイン名]/symfony.git

とりあえずコレで終わった模様。やることはローカルリポジトリを置きたいディレクトリにてまずは「git init」を行う。
このコマンドはローカルリポジトリの作成ってことになる模様。
次のコマンドは、リモートリポジトリの追加って行為になるようです。今回はこの書き方だとoriginっていう名前で設定したみたい。

  • git init:ローカルリポジトリの作成
  • git remote add [name] [url]:リモートリポジトリの追加

次はなんかファイルを作って管理下に追加してみましょう。
どうやら、「git add *」で行ける模様。
今回はsymfony本体を一気に入れてみました。

manji6 $ git add *

とかく何もでないので、本当に出来ているか不安ですが・・・。続いてコミット。
このコミットはローカルコミットみたいです。

なんか実行したら結果のテキストファイルが渡されて開いた?しかもエラーが出ました。

manji6 $ git commit
Aborting commit due to empty commit message.

コミットメッセージを書いてからコミットしてください?的な感じ?
困ったのでgit commit helpって打ったら色々出てきました。どうやらこれで行けるもよう。

manji6 $ git commit -m &'first commit&'
 Committer: manjiro <manjiro@Billy.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

If the identity used for this commit is wrong, you can fix it with:

    git commit --amend --author='Your Name <you@example.com>'

 2343 files changed, 302878 insertions(+), 0 deletions(-)
 create mode 100644 CHANGELOG
#(以下略...)

なんかできたのかな?コレでローカルはいけたので、続いてリモートへ。

manji6 $ git push origin master
Initialized empty Git repository in /home/git/repositories/[xxxxxxx]/symfony.git/
Counting objects: 2621, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2455/2455), done.
Writing objects:  37% (970/2621), 1.39 MiB | 2.76 MiB/s

最初MacのSSHキー設定方法が分からず、悩んでいたら/Users/ユーザー名/.ssh/に作っておいた認証キーをssh-addしてなかった罠。
なんかエラーって出たんですが、再度pushしたらうまく行っていた。なんなんだ?

どうやら書き方はこんな感じみたい。

  • git push <送信先リポジトリ> <送信するブランチ>:<送信先ブランチ>

ということで、とりあえずgitのセットアップはできた!
意外と簡単。ただなんかURLの書き方とかが特殊だなぁ。(慣れの問題?)