コマンド

概要

  • git難しい
  • git book読め

下位ページ

トラブルシューティング

  • 日本語が文字化けする→以下を打つだけでOK
    git config --local core.quotepath false
  • タグ'tagname"を作る
    git tag tagname
  • タグ"tagname"を削除
    git tag -d tagname
  • リモートタグ"tagname"を削除
    git push origin :TAGNAME
  • pushしていないタグを全てpush
    git push origin --tags
  • ブランチの可視化ツール
    gitk
  • でっかいファイルを間違えてコミットしてしまったら
    git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch でかいファイル.tar.gz' --prune-empty --tag-name-filter cat -- --all
    git commit --amend -CHEAD
    git push

運用

  • 段階的マージ
    • masterは本番環境おで動いているコードと透過
    • verX.X-pr ステージング、バージョン開発ごとの新機能のまとまり
    • verX.X-deploy 試験用サーバ 開発者が好きにプッシュして遊ぶ場所。CI通ってなかったりもする
    • プルリクをverX.X-prから切る→開発(実機確認では-deployにマージ)→CIとレビューが通るとprにマージされる→深夜メンテナンスで-prがmasterにマージされる
    • レビュアーは10人くらいいる可能性があるなど、非常に厳しいレビュー
  • コミットごとのレビューか、プルリクごとのマージか?
    • 普通はプルリクごと
    • コミットごとにレビューになる場合、人ごとに変更をまとめる必要があり、squashを求めるケースがある

逆引き

  • rebaseのrewordという機能はコミットメッセージだけ変えることができる
  • squashはsで代替できる
  • git merge-baseで共通祖先が見つかる
  • コンフリクト中には、conflictを解決するか、git merge --abortのどちらかしか選択肢がない。

理解すべきこと

  • fast-forwardマージとは?
  • rebaseとは?
  • git rebase -i $(git reb-list HEAD | tail -n 1)
  • force pushとは?何が起きるのか?

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS