Git_06(stash)
作業を一時避難する
# 基本 git stash # 未追跡ファイルも避難させる git stash -u # 避難に名前をつける git stash save "名前"
stash一覧を見る
git stash list

stashを復元する
# 復元して、stashを残す git stash apply # 復元して、stashも削除する git stash pop
復元対象の指定方法
# 最新のstash(0) git stash pop # 番号で指定 git stash pop 1
オプション
--index:ステージ状態も維持して復元する
stashの中身をみる
git stash show <番号>
stashを削除する
# 指定して削除 git stash drop <番号> # 全削除 git stash clear
Git_05(コミットの取り消し)
コミットの取り消し
打ち消したいコミットを削除して、最新に新しくコミットを積む
git revert <打ち消したいコミットID>
過去のコミットに巻き戻す
git reset <オプション> <巻き戻したい時点のコミット>
オプション
| ワークツリー | ステージング | リポジトリ | |
|---|---|---|---|
| --soft | そのまま | そのまま | 削除 |
| --mixed | そのまま | 削除 | 削除 |
| --hard | 削除 | 削除 | 削除 |
巻き戻しコミットの表現
HEAD^:直前のコミットHEAD~{n}:n個前のコミットHEAD~~~:3個前のコミット
HEAD~~~=HEAD~{3}=HEAD^^^
revertとresetの使い分け
revert:pushした後、コミットは残るので比較的安全reset:pushする前、コミットごと消すので注意深く!!
間違えてresetしてしまったとき reflog
git reflog
Git_04(ブランチ)
ブランチとは?
履歴の流れを分岐して記録していくためのもの。分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができる。また、分岐したブランチは他のブランチと合流(マージ)することで、一つのブランチにまとめ直すことが出来ます。
実態は、コミットを指したポインタ。
ブランチを表示する
# ローカルのブランチを表示 git branch # リモートも含めてすべてのブランチを表示 git branch -a # ブランチを作成 git branch <ブランチ名>
ブランチを切り替える
# 既存のブランチに切り替える git checkout <既存ブランチ> # 新規ブランチを作成して、そこに移動する git checkout -b <新ブランチ>
git のバージョン2.23以降はgit switchコマンドも使用可能
# 既存のブランチに切り替える git switch<既存ブランチ> # 新規ブランチを作成して、そこに移動する git switch -c <新ブランチ>
ブランチを統合する
作業ブランチに指定のブランチが統合される。
# <ブランチ名>を作業ブランチに統合する git merge <ブランチ名> # リモートブランチから統合する git merge <リモート名/ブランチ名>
mergeの種類
- Fast-Foward
- non-Fast-Foward
ブランチを削除する
git branch -d(-D:強制) <ブランチ名>
Git_03(リモート関連 push, pull, fetch, mergeなど)
リモートリポジトリを登録する
git remote add <リモート名> <リモートリポURL> # 例) git remote add origin <URL>
接続しているリモートの情報を確認する
# originなどを表示 git remote # URLも表示 git remote -v
リモートリポジトリにコミットを登録 push
git push <リモート名> <ブランチ名> # 例)masterブランチをoriginに登録 git push origin master # 現在のブランチを上流ブランチにpushする git push
上流ブランチ*1
リモートから情報を取得 + 統合 pull
git pull=git fetch+git merge origin/<branch>
# 現在の作業ブランチに指定のリモートブランチを統合する git pull <リモート名> <ブランチ名> # 省略したら、origin <作業ブランチ> git pull
リモートから情報を取得する fetch
git fetch <リモート名>
ブランチを統合する merge
# 現在の作業ブランチに指定のブランチを統合する git merge <統合したいブランチ>
*1: origin/master はローカルmaster ブランチの上流ブランチ (upstream branch)である
Git_02(log, rm, mv)
コミット履歴を表示する log
git log # 1行で表示する git log --oneline # ファイルの変更差分も表示 git log -p <ファイル名> # 表示するコミット数を制限 git log -n <コミット数>
gitから削除する git rm
# ワークツリーからファイルを削除+git管理から削除 git rm <ファイル名> # ディレクトリの場合 git rm -r <ディレクトリ名> # git管理からのみ削除 git rm --cached <ファイル名>
ファイル移動する git mv
git mv <旧ファイル> <新ファイル>
git mvは下記操作を一発で行っているmv <旧ファイル> <新ファイル> git rm <旧ファイル> git add <新ファイル>
Git_01(add, commit, status, diff)
基本構成図
ステージングに移す add
# ワークツリーにあるすべてのファイルをステージングに移す git add . # 指定したファイルのみ git add <ファイル名>
addを取り消し
git restore
リポジトリに登録 commit
# コミットメッセージを入力するエディタが起動する git commit # エディタを省略する git commit -m "<コミットメッセージ>" # 差分がエディタに書き出される git commit -v
commitを取り消し
git restore --staged
直前のコミットに追加の変更を加える
コミットをする → この変更を忘れてた!! → 変更を加える → git commit --amend
git commit --amend
変更状況を確認 status
git status
差分を確認する diff
# ワークツリーとステージの差分 git diff <ファイル名> # ステージとリポジトリの差分 git diff --staged <ファイル名>
テスト投稿
## 個人目標 ### 半年後の姿 チーム内での存在感をだしつつ、プロジェクトではメンバーを引っ張って前に倒していける存在 ### トピック 1. 技術力向上 - 基本設計・アーキテクチャ - AWS 知識 2. リーダーシップ - 部下からの信頼 - メンバー・チーム全体の作業意識向上 3. チーム内での存在感 - 昼会などの定例の場で存在感を出していく - チーム内の取り組みなどに参加していく ### 行動目標 - 技術力向上 - アーキテクチャ系の本を読む - PD 会のような場に参加していく - AWS ソリューションアーキテクト取得のために勉強時間を作る(週7時間以上) - リーダーシップ - チームメンバーに、全体的なスケジュールやそれに対して今やるべきことや期限感を共有し、作業意識向上を促す - 話し合いをしてもなかなか進まないときは、率先して決断し、物事を前に進めるようにする - チーム内での存在感 - 昼会の場で発言を増やしていく - 技術を共有する会に参加する ### 達成基準 - 技術力向上 - アーキテクチャ系の本を1冊以上読む - AWS ソリューションアーキテクト取得 - リーダーシップ - ★ - チーム内での存在感 - 2週に1回以上発言する


