コマンド
概要 †
下位ページ †
トラブルシューティング †
- 日本語が文字化けする→以下を打つだけで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とは?何が起きるのか?
|