Gitでリポジトリにリモートを追加するメモ
2013年03月30日

イマドキはバージョン管理くらい当たり前なのかなぁと思ってちょっと前にGitについて色々と調べたりしてみました。
ちなみにGitとは、さっきも言いましたがバージョン管理システムのことで、「いつ」「なに」「どんな感じに」変更したかを記録しておけるシステムで、「うはっwあのファイルなくなったwちょw」みたいな時とか、「え?消せって言ったアレ、使うの?え?消しちゃったよ」みたいな時にすぐに取り出せたりする優れものです。
そんなGitを僕はこのブログのテーマファイルで使用していたり、ついさっきこのブログで使うデモ用ディレクトリもGitで管理したりしています。
詳しく知りたい方はここら辺を見るといいんじゃないかと思います。超便利!いやマジ便利!
- Git – Wikipedia
- Git入門 – Gitとは
- イラストでわかる!git入門の入門 : アシアルブログ
- サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
- git入門 (全22回) – プログラミングならドットインストール
僕の使い方
僕はバージョン管理というより、公開環境にローカルファイルをアップする用途で使ってることが多いです。自分のサイトとかだったらそんなにいらんのですよ、バージョン管理なんておおげさなもん。
FTPだと、どうしても更新したファイルを手動で探してチマチマアップしなければするのが面倒なんですが、Gitを使うと数コマンドか数クリックで勝手にファイルをアップしてくれて凄く公開作業が楽になります。
※完成イメージ
メモ
僕は自分のサーバにメインのリポジトリを置いて、ローカルと本番環境にPullする形で使ってます。
今回はすでにアップしたいファイルが作られている状態で、リポジトリを使ってそれを公開環境にアップする手順を書こうと思います。
※前提条件ですが、サーバにもローカルにもGitが入ってるとします。
もし入ってない場合は、サーバで
sudo yum install git
してくださいね。
ローカルにリポジトリを作成
ターミナルでリポジトリを作りたいディレクトリに移動します
cd ~/Dropbox/www/test/
次に、リポジトリを作成
git init
これでリポジトリ作成完了。
コミット
まずGit管理するファイルを追加します。
git add .
これで全ファイルを追加できました。
次、コミット
git commit -m "最初のコミット"
これでコミット完了です。ディレクトリは以下にある全ファイルが記録されました。
リモートリポジトリの設定
次に、リモートリポジトリの設定。まずはサーバに共用のリポジトリを作成します。
まずはフォルダの作成
サーバ mkdir ~/repos/test.git
次に、「共用のリポジトリ作るよ−」の宣言
cd repos/test.git ↑これはディレクトリを移動 git init --bare --shared
これでリポジトリの作成が完了。「–bare」と「–shared」がキモですね。
ローカルリポジトリをリモートと紐付け
ローカルでコマンドを撃ってさっき作った共用リポジトリに紐づけます。ターミナルでリポジトリのあるディレクトリに移動して下記コマンドを入力。
git remote add origin git://sharedGitUrl.git
git://sharedGitUrl.git
これはリモートリポジトリのURLになります。SSHでアクセスするなら「ssh://ユーザ名@サーバーのIPアドレス/ディレクトリ/test.git」って感じです。
リモートにPush
さぁついにリモートにコミットをpushします。
git push -u origin master
-u をつけたコマンドを叩けば次回からは「git push」だけでpushできるようになって便利ですよ。
本番環境に追加
ここまでやれば後は簡単。公開環境に追加しましょう。
公開環境の、ディレクトリを起きたい場所に移動して下記コマンドを入力。
git clone git://sharedGitUrl.git
さっきと一緒で、リモートのリポジトリを選択する感じで「git clone」です。
これでディレクトリと共にファイルが追加されます。
おわりに
Gitが凄いかどうかは実は僕はよく分かっていないのですが、これがやれるようになっただけで、自サイトの公開・修正作業は結構楽になったと思います。
そもそも、よくありません?ローカルで修正して、FTPでアップして連絡したら「このページだけ直ってないよ」とか「ココの画像が差し替わってないよ」とか。僕はしょっちゅうです。
それがなくなるだけでも凄く楽だなぁと感じますし、Gitは何となくスタンダードになってるのかなぁって空気も感じますので、できるだけ使えるようにはなっておきたいなぁという気持ちもあります。
また、こういうツールはそもそも敷居が高いので、デベロッパーでなければ使い始める気が起きないって事も多いと思います。
それに対してどうすれば良いかの解はあいにく持ち合わせていないのですが、GUIアプリなりなんなりで、ある程度敷居を下げれたりしてチーム全体として効率が上げられればなぁと思いますね。
他にこんな事も書いてます
- Mac OS X zsh で cd したら同時に ls -GAF するエイリアスコマンド
- jQueryのwidth,height系メソッドの違いについて
- jQueryでChromeの場合$(function(){]); が画像読み込み前に実行される場合の対応
- Spotlightのメニューバーアイコンを非表示にする方法
- Macの日本語入力ソフトで設定されてる大量の入力モードを減らす
- Javascriptでユーザーエージェント判定(多分IE11とかスマートフォン、タブレットにも対応)
- スマートフォンサイトで要素タップ時の挙動を頑張った
- Sublime Text2 から Grunt を発動する方法
- ChromeのDeveloperTool、横に表示させられるんだってよ
- ちょこちょこ使うけど忘れがちなPHPの機能まとめ
FBでコメント
コメント1つ
明日読む | Gitでリポジトリにリモートを追加するメモ http://t.co/t8TKKJLxiX
トラックバック/ピンバックはありません。