Railsチュートリアルをやる中で もうちょっとGitわからないとしんどいなって思ったのでGitの勉強をすることにしました まずはProgateのGitコースをやったのだけど、まだ全然あやふやだったので 分かりやすいと評判のわかばちゃんと学ぶ git使い方入門を購入
確かに言われている通り Gitの概念とか、どういう事をやっているかとか、薄ぼんやりだったモノの形が前よりはっきりしてきました なんだけど、SourceTreeと言うツールを使っての説明なんですよね 私の開発環境(学習環境?)はIDEなCloud9なのでSourceTreeは使えないんですね
と、言う訳で本で解説されているSourceTreeの操作をCloud9のターミナルで行うにはどうしたらいいか コマンドを調べつつ学習していきましたのでメモっておきます PC上だと少し違うかもしれませんがGitのコマンドは大体同じかと 同じような環境の人のお役に立てれば幸いです
- 本文中、ユーザーネームなどはご自身の環境によって変わります
- 御本があること前提なので本文に載っている部分の解説はほぼ省略しています
- 御本にあることをターミナルでと言う前提なので紹介されていない機能や関連オプションについてはほぼ省略しています
- コマンドを実行した際の表示メッセージを適宜省略しています
間違っている所は教えていただけるとありがたいです
わかばちゃんと学ぶ git使い方入門 CHAPTER2の内容をターミナルで実行したい
SECTION 04|リポジトリを作る
ユーザー情報
本文と順番が前後しますが、初めてGitを使う場合はユーザー情報を登録する必要があります 公開されて困らないもので
$git config --global user.name "user-name" #ユーザー名を入力 $git config --global user.email mail@mail.com #メールアドレスを入力
globalオプションを付けることで、今後設定の必要がなくなるそうです プロジェクト単位で設定を変えたいときはglobalオプションを抜いて設定することも出来るようです
リポジトリの作成
バージョン管理をしたいフォルダを作ってそのフォルダに移動 リポジトリに設定
ec2-user:~/environment$ mkdir sample #sampleディレクトリを作る ec2-user:~/environment$ cd sample/ #sampleディレクトリに移動 ec2-user:~/environment/ sample$ git init #Gitを使う宣言(リポジトリに設定) Initialized empty Git repository in /home/ec2-user/environment/</em>sample/.git/ ec2-user:~/environment/sample (master) $ #現在地のパス(現在のブランチ)</pre>SECTION 05|コミット
見本に沿ってテキストファイルを作りますステージに追加する
SourceTreeは更新を察知してくれるけどターミナルでは手動で確認します$git status #変更があったファイルがあれば表示される #ステージに追加されていれば緑、されていなければ赤で表示 #現状ではステージに追加されていないので赤で表示されている okonomiyaki.txt $git add -A #変更があったファイル全てをステージする $git add ファイル名 #指定したファイルをステージに追加するコミットする
$git commit -m"お好み焼きのタネを作成"作業する→ステージに追加する(add)→コミットする これを繰り返す $git statusは毎回確認しなくて大丈夫ですステージングエリアから降ろす
同時に編集した2つのファイルを別々にコミットするならそれぞれをファイルを指定でaddしてコミットでいい気もしますが git add -A でまとめてステージに追加してしまったと仮定して、コミットに含めたくないファイルをステージから降ろします okonomiyaki.txtに「焼きます」の一文をを追加 新しくpancake.txtを作成 git add -Aしておく$ git status #二つのファイルがステージに追加されている modified: okonomiyaki.txt new file: pancake.txt $ git reset HEAD pancake.txt #pancake.txtをステージから降ろす $ git status modified: okonomiyaki.txt #ステージに残っているので緑表示 pancake.txt #ステージから降りているので赤表示それぞれ別々にコミットまでやってみたりしますSECTION 06|チェックアウトでコミットを移動
git logでコミットIDを表示
さっきまでのデータを使います$ git log commit 3993fee6a47c5df46364acefe0f4962ad695953a #コミットID Author: user-name <user@mail.com> #ユーザー情報 Date: Mon Apr 22 08:29:04 2019 +0000 #コミットした日時 隠し味を追加 #コミットメッセージ commit 0ca2adadfdd3174e7b1d480c969fda812c7d4663 Author: user-name <user@mail.com> Date: Mon Apr 22 08:31:22 2019 +0000 具材を追加 commit 2f2ebaef32df42f80020ffeb0ee2cb4304ae9adc Author: user-name <user@mail.com> Date: Mon Apr 22 08:32:48 2019 +0000 お好み焼きのタネを作る未表示の部分を表示させるにはEnterを打刻 git logの表示を終了させるにはQを打刻コミットを移動する
git checkoutを利用して"具材を追加"のコミットまで移動する 下記以外にもいろいろメッセージが表示されるけど現時点ではスルーで$ git checkout 0ca2adadfdd3174e7b1d480c969fda812c7d4663 #移動したいコミットのIDをコピペ HEAD is now at 0ca2ada... 具材を追加 #移動したコミットのID(先頭の7文字)とコミットメッセージgit checkoutを利用して"隠し味を追加"のコミットまで移動する$ git checkout 3993fee6a47c5df46364acefe0f4962ad695953a Previous HEAD position was 0ca2ada... 具材を追加 HEAD is now at 3993fee... 隠し味を追加okonomiyaki.txtを確認すると 隠し味を追加 まで進んでいる このまま作業を続けると問題が起こるのだけどそれはまた別の話(SESSION 28にて←書いたらリンク張ります)おすすめの学習方法
ちょっと面倒なんですが 「本の通りSourceTreeでやってみる→ターミナルでもやってみる」で進めるほうが理解しやすかったです 本でやっている事は何なのかがわからないとターミナルで何をしていいかわからないし もっと言うと 「SourceTreeでやってみる→対応するコマンドを調べる→ターミナルでやってみる」なのが良かったと思うので こんな記事書いておいてなんですが、自分で調べながらやる方が頭に入ると思いますw