Slide 1

Slide 1 text

git勉強会 (トラブルシューティングについて考えよう) 2024年2月4日(日)10時~ 渕上 恵士朗

Slide 2

Slide 2 text

自己紹介 ・名前:渕上 恵士朗(ふちがみ けいしろう) ・出身:福岡大学商学部 ・仕事:某銀行でアプリ開発(バックエンド)     エンジニアカフェスタッフとしてたまに勤務 ・技術:vb.net、SQLServer、IIS(windowsアプリ)     最近kotlin(spring boot)でAPI開発     AWS関連作業もやり始めたり ・業界:ホテル基幹システム、販売管理システム、     バンキングアプリ

Slide 3

Slide 3 text

イベントの目的 ・gitの初歩から実務的な運用、コマンドまで理解を深める  (ステップ別に複数回のイベント実施を企画しています!!) ・よりよいgitの運用方法を皆さんで議論したい ・主催者が転職先でgitを利用するので、使い方を思い出したい

Slide 4

Slide 4 text

何となくのカリキュラム 1回目:gitをインストールしよう(開催済) 2回目:基本的なコマンドを覚えよう(開催済) 3回目:ブランチを操作しよう(開催済) 4回目:トラブルシューティングについて考えよう(本日開催)

Slide 5

Slide 5 text

今回の目標 ・競合(conflict)発生時の対応 ・前のコミットに戻りたい(revert) ・前のコミットを消したい(reset) ・コミットをきれいにしたい(reset, push -f) ・特定のコミットのみマージしたい(cherry-pick) ・ブランチのみ切り替えたい(switch) ・特定のファイルやディレクトリはgitで管理しない(ignoreファイル)  

Slide 6

Slide 6 text

コンフリクトとは? ・同じブランチから派生している複数のブランチで同じ個所を編集した際に発生。 どちらの修正が正しいか判断ができないので、人間が目で見て判断してあげる 必要がある。 https://www.engilaboo.com/git-conflict/

Slide 7

Slide 7 text

前のコミットに戻る(revert) ・取り消したいコミットを消したコミットを新しく作成する https://backlog.com/ja/git-tutorial/stepup/29/

Slide 8

Slide 8 text

前のコミットに戻る(reset) ・取り消したいコミットを消す(物理的) ・soft,mixed,hardがある(デフォルトはmixed) https://www.r-staffing.co.jp/engineer/entry/20191129_1

Slide 9

Slide 9 text

push済みのコミットを整理したい ・作業中にレビューを依頼するためにリモートにpushしてプルリクエストを作成。 その時はマージは行わず、全ての作業が完了したタイミングで再度pushを行っ た。このときに1つの修正に対して複数コミットができてしまう。 ・そのブランチは自分のみ作業しているとする ・git reset →git push -f(強制pushを行う)

Slide 10

Slide 10 text

特定のコミットのみマージしたい(cherry-pick) ・ブランチを切って作業していたが、急遽特定の変更のみ派生ブランチにマージ する必要が出てきた。 https://www.r-staffing.co.jp/engineer/entry/20200327_1

Slide 11

Slide 11 text

ブランチのみ切り替える(switch) ・checkoutはブランチ操作、ファイル操作も実行される ・2019年からブランチ操作のみ(switch)、ファイル操作のみ(resotre)が実装され た。 ・ファイルは上書きされたくないが、ブランチのみ切り替えたい場合に利用する。 https://hiro8blog.com/git-switch/

Slide 12

Slide 12 text

特定ファイルは管理しない ・どれだけ気を付けても不要なファイルをaddして気付かずpushまでしてしまうこ とはある。 ・ignoreファイルを作成することでトラッキング対象外にすることができる。 https://qiita.com/anqooqie/items/110957797b3d5280c44f