Rails

【Note】git pull --rebase とgit stash、git stash popについて

11/07/2023

フィヨルドブートキャンプでGithubに関する課題提出をしました。

今後振り返ることができるよう使用したコマンドについてメモを残します。

$ git init

新しくリポジトリを作成する際に使用するコマンド。
ディレクトリ内に「.git」ファイルとmainブランチが作成される。

作成タイミングを忘れないように。

$ git remote add origin <URL>

ローカルとリモートのリポジトリを紐付ける。
ローカルリポジトリがリモートリポジトリがどこにあるか知っている状態になる。
メインのリモートリポジトリについてはoriginとつける慣習がある。

URLはHTTPSを選択。

$ git clone <URL>

既存のリポジトリをローカルに複製。
クローンでは新しいフォルダが作成されるので、フォルダの用意は不要。
別のGitリポジトリのフォルダ内にクローンしないように注意する。

GithubクローンにはHTTPSを利用。

$ git  status

変更が加えられたファイルを表示。

$ git diff

ファイルに加えられた変更点を表示させる。
「q」の入力で終了。

$ git log

コミットログを確認できる。

$ git remote -v

リモートの設定を確認。

$ git branch <任意のブランチ名>

<任意のブランチ名>で新しいブランチを作成。

$ git branch -a

ローカルとリモート両方のブランチを表示。

$ git reset

直前のコミットの取り消し

$ git checkout <ブランチ名>

ブランチを切り替える。<ブランチ名>には移動先を指定する。

$ git pull --rebase

git pull --rebaseについては以下の記事が、図解と合わせてとてもわかりやすかったです。

参照: git pull と git pull –rebase の違いって?図を交えて説明します!

$ git fetch

リモートリポジトリの内容を確認したいだけのときに。
リモートリポジトリの最新の履歴の取得だけできる。
FETCH_HEADというブランチ名でチェックアウトできる。

参照:サル先生のGit入門

$ git merge

今いるブランチに別のブランチの内容を結合させる。
↔リモートリポジトリ、ローカルの別のブランチ。

$ git rebase

今いるブランチに別のブランチの内容を取り込む。
mergeと異なるのは、コミットがまとめられ、新しく作成されるところ。
取り込みたいブランチの上に今のブランチの内容を付け替えるイメージ。


$ git pull

fetch + merge

$ git pull --rebase

git pull + --rebaseオプション。
git fetch + rebase。コミット履歴はシンプル。

less <ファイル名>で追記した文が反映されていることを確認できる。
【スクロール操作】
f :1画面下にスクロール
b:1画面上にスクロール
j :1行下にスクロール
k:一行上にスクロール
q:lessコマンド終了

$ git stash

現在のワークツリーの状態を一時的に保管。
作業中の状態をコミットせず、他のブランチで作業したいときに利用する。

$ git stash list

一次保存さえrている作業リストを確認できる。

$ git stash pop stash @{0}

保存データを再度呼び出す。

# 例
% git stash
Saved working directory and index state WIP on hello_world: 0388e6c add hello_world.html

% less Good_night_world.html # ファイル内容を確認

% git stash list # 保存されている作業リストを確認
stash@{0}: WIP on hello_world: 0388e6c add hello_world.html

% git stash pop stash@{0}

On branch hello_world
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   Good_night_world.html

no changes added to commit (use "git add" and/or "git commit -a")
Dropped stash@{0} (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
% less Good_night_world.html

-Rails
-, , ,