【Railsチュートリアル】第1章にあるGitのこと


はじめに

この記事ではRails チュートリアルの第1章
で使用されているGitの使い方について
まとめた記事です。
ベストプラクティスや間違いがあれば
チュートリアルをやりながら書き直していく予定です。


Git

言わずと知れたVersion管理ツール
ちなみにGit HubとGitは別物
よく勘違いされているのであらかじめ書いておきます。

Git : 技術の名前、コマンド
Git Hub : Gitを使ったサービス


チュートリアル 第1章

チュートリアル上で使われてるAmazonのクラウドIDE
Cloud9もそうですが、まぁ日頃使っていないので
使い方を忘れるんですよね。。。
それと同じようにGitも業務に取り入れていない状態で
案の定忘れていました。

今後、職場に導入することも考えて
自分なりのリファレンスをどこかで作りたいな。。。

今回はそんな忘れっぽい私のような人に贈る内容です。


設定コマンド

インストールをするときに欠かせない設定コマンド
社内のそれも外の世界とつながっていない場合でも
これは入れるのだろうか。。。

git config --global user.name [username]
git config --global [mailaddress]

最低限知っておきたい Gitコマンド

$ git init
$ git add -a
$ git status
$ git commit -am "命令系のコメント"

git addの-aオプションは
作業ツリーのファイルをすべてステージするという意味
チュートリアルでは注意して使うように書いてある。
「変更する必要のないファイルも
一緒にステージングしてしまうから」という意味で書いてるのかな

といっても中途半端にあらゆるファイルに変更を加えるのにはリスクがある。
そう思うのは一人で開発しているからかな。

ちなみに初めて知りましたがGitのコメントは命令形
(チュートリアルでは体言止めと表記)が良いみたいです。

筆者は日頃から体言止めで書いているので
ここは当たり前のようにcommitしてました。


Git初心者から脱却したいなら

リポジトリやバックアップについて勉強しよう。
Gitではブランチを使うことで
変更履歴を複数持たせることができる。

文字通どおり枝分かれさせることができるので

オリジナルファイルを複数持つことなく
変更履歴A 変更履歴B といった感じに
変更履歴のみを管理することができる。

何がすごいってオリジナルファイルを
2コ3コと持たなくてよいということ

よくファイル名で
ファイル名_YYYYMMDD-0.txtやファイル名_YYYYMMDD-1.txtといった
ファイルを目にすることだろう。

どれが新しいのかわからない
そういった面倒な版数管理をする必要がないのだ。

また、どうしても
2重管理したいということであれば
別のサーバ上にリポジトリを作成することができる。

これを

「リモートリポジトリを作成する」

という。

リモートリポジトリ作成する場合は
cat コマンドでリポジトリ内にある公開鍵を表示して
リポジトリを登録する先に登録しておく必要がある。

手順については第2章に記載します。


'リモートリポジトリの操作(ここではmasterブランチにプッシュ)
$ git remote add origin リポジトリURL
$ git push origin master

' 枝分かれtestの新規作成して切り替える
$ git checkout -b test

' 枝分かれtestとmasterの結合(masterにスイッチ後)
$ git merge test

' 全ての枝分かれを表示
$ git branch

' コミットログの表示(変更履歴が多い場合はこのまま打つのは得策ではないかも)
$ git log

'任意の変更箇所まで戻る(もしかすると、ベストプラクティスがあるかも)
$git reset ハッシュ値


出力メッセージの日本語翻訳

あと、チュートリアルの最中に気になった文言

単語 日本語
On branch master 親ブランチを参照しています
No commits yet まだコミットされていません
Changes to be committed コミットされる変更
Changes not staged for commit 変更がステージングされていません
nothing to commit, working tree clean 作業ツリーにコミットするものは何もありません
discard changes in working directory 作業ディレクトリの変更を無視する

おわり