1
0

ちょっとリッチなGit操作をそろそろ覚える

Posted at

会社勤めになるにあたって何を勉強したらいいか
一番最初にヒットしたのがGit管理方法だ。

一番わかりやすいGitについてのサイトはサル君かな?
会社の代表にも勧められた。

とりあえず
init → add → commit → branch

など基本的なことを会社に入る前に覚えた。

会社で共同開発を進めていくうちに
pull / push / merge

を覚えた。

なんとかそれでいいと思ったが、
次の派遣先のGitが他でやってこなかったような
管理方法をしていた。

rebase?
revert?

cherry-pick?

なにそれ

軽くおさらい

ブランチ戦略

image.png
この図に尽きるでしょう。

checkout

VS CODEでいうところのこれ。
ブランチを切り替えることをチェックアウトという。
image.png

git checkout ブランチ名

HEAD

現在使用しているブランチの先頭を表す名前

なんか似たような奴に「--hard」ってあるよね...

大量の不要な変更やエラーが発生し、最新の安定した状態に戻りたい場合

--hard

git reset --hard [コミットID]を実行すると、
指定されたコミットに現在のブランチのHEADが移動します。

作業ディレクトリとインデックス(ステージングエリア)の内容も
そのコミットの状態に完全に戻ります。

この操作は、未ステージング、未コミットの変更をすべて破棄します。
使用する際は注意が必要です。

--mixed

git reset [コミットID]またはgit reset --mixed [コミットID]を実行すると、
指定されたコミットにHEADが移動します。

インデックス(ステージングエリア)は指定したコミットの状態にリセットされますが、
作業ディレクトリのファイルは変更されません。

これにより、ステージングされていた変更は取り消されますが、
作業ディレクトリの変更は保持されます。

--soft

git reset --soft [コミットID]を実行すると、指定されたコミットにHEADが移動しますが、
インデックス(ステージングエリア)と作業ディレクトリの状態は変更されません。

これにより、HEADの移動前にステージングされていた変更は、
移動後もステージングされたままとなります。

このオプションは、コミットを再構成する際に便利です。
例えば、複数のコミットを1つにまとめる場合などです。

(Chat GPTより)
...ここら辺はユースケースも踏まえたうえで
実際に使ってみないとわからないよね。

rebase

image.png

rebaseは分岐点からごっそり統合先にくっつける。

Gitの勉強、地味...

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0