Git 学習メモ

Git|わかばちゃんと学ぶ git使い方入門CHAPTER4をターミナルで

前回からの続き
そういえば言ってなかった気がするんですが、
今更だけど練習用のデータは本文に合わせたものを作ってやった方がわかりやすいです
ちょっと面倒だったりもしますがそれも何かしらの練習と思ってやりました

わかばちゃんと学ぶ git使い方入門で解説されているSourceTreeの操作をCloud9のターミナルで行うにはどうしたらいいかと言うお話です
PC上だと少し違うかもしれませんがGitのコマンドは大体同じかと思います
同じような環境の人のお役に立てれば幸いです

  • 本文中、ユーザーネームなどはご自身の環境によって変わります
  • 御本があること前提なので本文に載っている部分の解説はほぼ省略しています
  • 御本にあることをターミナルでと言う前提なので紹介されていない機能や関連オプションについてはほぼ省略しています
  • コマンドを実行した際の表示メッセージを適宜省略しています

間違っている所は教えていただけるとありがたいです

わかばちゃんと学ぶ git使い方入門
CHAPTER4の内容をターミナルで実行したい

SECTION 17|過去に戻って新規ブランチを作成

CHAPTER2でやった事の合わせ技です
git log→戻りたい部分のコミットIDをコピー→戻りたいcommitにcheckout→新規ブランチを作成

御本と違って枝分かれの樹形図にはならないですが大丈夫です

SECTION 18|過去のコミットを打ち消す

git logで打ち消したいコミットのIDをコピー

コミットメッセージを編集したい場合

ターミナルにエディタが開くので赤丸部分を編集

ctrl+x(保存して終了) → y(確認) → Enter(ファイル名はそのままで実行) でターミナルに戻る
間違えておかしなコミットメッセージになってしまっても後からコミットメッセージを編集することも出来るので慌てない

SECTION 19|履歴を直線に

御本の見本と同じになるようにデータを作っておく
ブランチごとに別ファイルにしておくと後でコンフリクトが起こらないので良いです

因みにマージした場合はこちら
なぜか更新順ではなくなっています

SECTION 20|コミットを一つにまとめる

タイトルにはスカッシュとありますが、実行するコマンドはスカッシュじゃないんですね。
コマンドによって行う行動がスカッシュと言う認識でおりますがそれでいいのかな?
因みに使うコマンドはrebaseです

正直ここは特に自信がありませんしもっといい方法があると思うのですが、現状ここまでで精一杯です💧

エディタが開きます

赤丸部分を修正します
pickの部分を、残したいコミット(一番新しいもの)はそのまま
纏めたいコミットをsに書き換えます

ctrl+x(保存して終了) → y(確認) → Enter(ファイル名はそのままで実行)
と、ここでコミットメッセージの編集画面に移りますがどこをどうすればいいのかわからず・・・
なのでそのままctrl+x(保存して終了) → y(確認) → Enter(ファイル名はそのままで実行) でターミナルに戻ります
残した分のコミットメッセージが表示されています(わかったら修正しますねすみません)
コミットメッセージを修正する場合、↓こちらのコマンド(SESSION24の方法)で修正できます(引き続きエディタの方で何かできないのか勉強します)

SECTION 22|リモートリポジトリから最新の状態を取得

現在の状況

御本とちょっと違ってしまっているのですが
git logで確認するとすべての状況が揃っているのがわかります

リモートの状況を取り込む

御本に従ってGitHubでデータの更新をします

変更をローカルブランチにマージする

SECTION 23|不要になったリモートブランチを削除する

リモートブランチの削除

適宜マージしたデータを用意してリモートにもpushしておきます

他のメンバーが削除したリモートブランチをローカルで削除

masterブランチとトピックブランチ(facebook-button)をマージしたデータをpush
GitHubのページ上でトピックブランチ(facebook-button)を削除(ブランチの一覧を開いてゴミ箱マーク)
この状態でターミナルからリモートにあるブランチを確認してみます

どうやらターミナルから消した場合以外はこういうことが起こるようです

SECTION 24|直前のコミットメッセージを修正する

直前のコミットメッセージ且つpushしていないものに限る

SECTION 25|未コミットのファイルを一時退避

一時退避を行う

御本と同じようにデータを作成
樹形図を表示しても本文のように表示されませんが、気にせず進みます

退避する際にメッセージを付けることも出来る

復元

スタッシュをリスト表示

$git stash list #スタッシュのリストを表示するコマンド
stash@{0}: On facebook-button: Googleplus-button #保存時にメッセージを追加した時の表示

戻したいスタッシュ名(stash@{0}の部分)をコピー

この状態だと退避したデータが残っている

SECTION 26|別のブランチから特定のコミットをコピー

御本の通りにデータを作ります。コミットごとに別ファイルにするとスムーズです。
現状はこんな感じ

実際の作業はこちら

移動元のコミットはrevertで打ち消しておく

SECTION 27|コミットにタグをつける

タグをつける

タグの削除

SECTION 28|HEADに直接コミットしてしまったら

CHAPTER2のSECTION06で「詳しくはSECTION28で」と書いたやつです
例えば状況としてはこんな感じ

解説は本文の通りです

以上で終了

ずいぶん長くなっちゃったので分ければよかったような気もしますが本文と同じまとまりと言う事で。
正直、ここどうなのよっていうところも残っていますが(スカッシュとかスカッシュとか)一先ず終了です。
入門編が終わったと言う事で、適宜勉強していきたいと思います。