📓

Git勉強メモ-コンフリクトに立ち向かう力(スキル)がほしい

2022/10/30に公開

gitの勉強

gitを理解したいので勉強中

gitコマンド

  • リモートリポジトリのアクセス先を確認したい
    • git remote -v
  • リモートリポジトリの情報を取得したい
    • git fetch
  • ブランチを確認したい
    • git branch -a
  • ブランチを作りたい
    • git checkout -b {{作成するブランチ名}}
  • ブランチをリモートに登録したい
    • git push -u origin {{作成したブランチ}}
  • 作ったブランチをリモートにプッシュしたい
    • git push --set-upstream origin {{作成したブランチ}}
  • ブランチを切り替えたい
    • git checkout {{切替えたいブランチ名}}
  • 差分を表示したい
    • ブランチの差分確認
      • git diff {{ブランチA}} {{ブランチB}}
    • リモートブランチとの差分確認
      • git diff HEAD..{{リモート名/ブランチ名}}
    • コミット前後の変更点の確認
      • git diff HEAD^
  • ローカルにリモートの全ブランチの情報を取り込みたい
    • git pull
  • ローカルにリモートのmasterブランチの情報を取り込みたい
    • git pull origin master
  • ローカルのブランチをリモートのブランチの状態にするときの設定をしたい
    • git config pull.rebase false
    • git config pull.rebase true
    • git config pull.ff only
  • コミット履歴を確認したい
    • git log
  • これまでの操作を確認したい
    • git reflog
  • ローカルのブランチが見つからないけど、とにかくリモートリポジトリにpushしたい
    • git push origin HEAD:{{pushしたいリモートリポジトリ名}}
  • タグをつけたい
    • git tag {{タグ名}} -m "{{note}}" ※注釈付き
    • git tag {{タグ名}} -m "{{note}}" {{コミットID}}
    • git tag {{タグ名}} {{ブランチ名}}
  • タグをリモートリポジトリに反映したい
    • git push --tags
  • タグ一覧を表示したい
    • git tag
  • タグの情報を表示したい
    • git show {{タグ名}}
  • タグを削除したい
    • gi tag -d {{タグ名}}
  • 特定のコミットだけとりこみたい
    • git cherry-pick [commitID]
  • ローカルブランチを削除したい
    • git branch -d {{削除するブランチ名}}
    • git branch -D {{削除するブランチ名}} ※マージしてなくても消せる
    • ※消すブランチ以外のブランチにいること git checkout {{消さないブランチ名}}
  • 指定タグの状態のブランチを新規に作りチェックアウトする
    • git checkout -b {{新規のブランチ名}} {{タグ名}}

一般的なブランチの定義

どうやらブランチにはこのような定義があるらしい。

  • mainブランチ/masterブランチ
    • プロダクトリリース用のブランチ
    • masterが差別的な表現だからとmainと呼称する動きがあるらしい
  • developブランチ
    • 開発用ブランチ
    • featureブランチ
  • 機能の追加用
    • developブランチから分岐。developにマージ
  • hotfixes
    • リリース後の緊急対応用

一連の流れ

  • リモートリポジトリのブランチ(origin/dev01)との差分をマージする
git fetch
git diff dev01..origin/dev01  ※差分確認
git pull
※コンフリクトを解消する
git add .
git commit -m "{{comment}}"
git push
  • コンフリクトしてrebaseが完了できない
git fetch
git checkout {作業ブランチ}}
git rebase {{ベースブランチ}}  ※(コンフリクトを解消)
git add {{パラメータ}}
git rebase --continue       ※リベースを続行
git commit {{パラメータ}}

Discussion