gitで覚えるべきコマンド

・基本
add
mv
rm
commit
push
pull

・コミットログをキレイに保つために必要
reflog
reset –soft
reset –hard
rebase
commit –amend
rebase
push -f

・誰かと一緒にプロジェクトを進めるのに必要
git remote add
fetch
cherry-pick
revert

・キチンとソース(ログ)管理するのに必要
checkout -b
branch
branch -l
merge

それ以外はまだ使いこなせていないけれど。(tagとか?)

github はじめ方

すでにあるレポジトリから引っ張る

# git clone git@github.com:td-inc/hoge.git

ローカルのレポジトリをgithubで使えるようにする

# git init
# git remote add origin git@github.com:td-inc/hoge.git

さくらのVPSを借りてgitのレポジトリを置いて、EC2からgit pull。

▽ EC2サーバー上で公開鍵を作成

# cd ~/.ssh
# scp id_rsa.pub さくらのユーザー名@さくらのアドレス: (←コロン重要)

▽ さくらのVPSサーバーで、authorized_keysに追記

# cat id_rsa.pub >> ~/.ssh/authorized_keys

※ authorized_keysに内容を直接書き足しても良い。

▽ EC2サーバーからさくらのVPSサーバーへ接続テスト

# ssh td-inc@49.212.170.189

▽ EC2上から、git cloneして、データを落とす

# sudo git clone ssh://さくらのユーザー名@さくらのアドレス/var/git/レポジトリ名

▽ httpd.confにバーチャルホストの設定を追加

# sudo vi /etc/httpd/conf/httpd.conf
ServerName fes.mu
DocumentRoot /var/www/fes.mu

apache再起動

sudo service httpd restart

▽ 次回以降、差分をダウンロードする時は、

# sudo git pull ssh://さくらのユーザー名@さくらのアドレス/var/git/レポジトリ名

[追記]
↑ パーミッションを775とかにして、”ec2-user”をownerのグループに追加しておけば、
sudo は不要になる。

グループに追加

# usermod -G wheel ec2-user

パーミッション、所有者の変更

# sudo chmod 775 ○○○
# sudo chown root:wheel ○○○

さくらのVPSを借りてgitのレポジトリを置く (2)

▽ さくら

参考: http://randd.kwappa.net/2010/12/10/190

$ sudo wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
$ sudo rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
$ sudo yum install git

参考: http://kasahi.blogspot.jp/2011/07/vpsgitmac.html

$ sudo mkdir /var/git
$ sudo chmod 775 /var/git
$ sudo chown root:wheel /var/git
$ sudo cd /var/git
$ sudo mkdir demo.git
$ sudo chmod 775 demo.git
$ sudo chown root:wheel demo.git
$ sudo cd demo.git

↑ /var/git 以下のオーナーが、gitで使うアカウントでないと、後のpushで失敗した

git init --bare --shared
Initialized empty shared Git repository in /var/git/demo.git/

▽ Mac
Towerを使っているので、gitはすでに入っている。

Add Remote Repositoryで、

ssh://ユーザー名@さくらのアドレス/var/git/demo.git

を追加。

とりあえずコミットのテストをするなら、

$ git add *
$ git commit -am "ログのメッセージ"
$ git push ユーザー名@さくらのアドレス:/var/git/fes.mu master

あたりを使う。

さくらのVPSを借りてgitのレポジトリを置く (1)

まずはSSHのログイン周りの整備まで。

参考: http://blog.hybridism.com/?p=140

▽ さくらのVPS上での作業

ユーザーを追加、パスワードを設定、wheelグループに追加。

$ adduser 追加するユーザー名
$ passwd 追加するユーザー名
$ usermod -G wheel 追加するユーザー名
$ visudo

%root ALL=(ALL) ALL の近くに、
%ユーザー名 ALL=(ALL) ALL
を追記して、sudoを許可。

$ vi /etc/ssh/sshd_config

で、

PermitRootLogin no

に変更して、SSH接続でrootに直接ログインすることを禁止。
:wq

sshdを再起動

$ /etc/init.d/sshd restart

▽ Macのターミナルでの作業

id_rsaの作成

$ cd ~/.ssh
$ ssh-keygen -t rsa

SCPでファイルを転送

$ scp id_rsa.pub ユーザー名@さくらのVPSのIPアドレス: (←コロン重要)

sshでログイン

$ ssh ユーザー名@さくらのVPSのIPアドレス

▽ さくらのVPS上での作業

~に.sshというフォルダを作ってパーミッションを700にする。

$ mkdir .ssh
$ chmod 700 .ssh

.sshに公開鍵を移動

$ mv id_rsa.pub .ssh/

authorized_keysというファイルを作成して公開鍵を書き込む
(鍵認証の有効化とパスワード認証の無効化)

$ touch authorized_keys
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys

再びsshd_configを編集

$ sudo vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
 
PasswordAuthentication no

:wq

再びsshdを再起動

$ sudo /etc/init.d/sshd restart

次回以降のログインは、

$ ssh ユーザー名@さくらのVPSのIPアドレス -i .ssh/id_rsa -p 22

になる

▽ Macのターミナルでの作業
最後にMacのターミナルからのログインを簡単にするために、.ssh/configに

Host sakura
    HostName さくらのVPSのIPアドレス
    User ユーザー名
    IdentityFile ~/.ssh/id_rsa

と書き込んでおく。すると、

$ ssh sakura

でログイン出来る。