こんにちは、なかにしです。
今回はほぼ備忘録です。すみません。
実務(副業)でCLI上でGitコマンド打ちまくってるのでアウトプットしたくて書きます。
【初期設定】
[Clone]
リモートブランチからローカルブランチに内容をクローン。
その際にリモートリポジトリは「origin」、
ローカルリポジトリは「origin/ブランチ名」という名前が自動でつく。
よって、origin = https://git….. の略称。
【受け取り系】
[pull]
git fetch origin ブランチ名 && git merge origin/ブランチ名 と同義。
[fetch]
リモートリポジトリからorigin/ブランチ名に変更を持ってくる。
mergeしない限りはconflictは起こらない。
fetch内容はgit log HEAD..origin/main で見られる。(HEAD=developとかmainとは別ブランチ想定)
[merge]
fetch内容で問題なければローカルリポジトリから変更を取り込む。
【渡す系】
[add]
手元での変更をローカルリポジトリのステージング環境に上げるコマンド。
選べる。全部一気に上げる場合は「.」
[commit]
ステージングしたものをローカルリポジトリに送るコマンド。
-mオプションでコミットメッセージをつける。
ちなみにaddとcommitで2段階に分けてpushの準備をしているのは「誤操作を減らす為」「柔軟な対応をできるようにする為」だそう。
[push]
commitしたものをブランチを選んでリモートリポジトリに上げる。
リモートにないブランチを選択すると新規公開される。
【確認系】
[log]
コミットログ見る用。
ステージングとかは見られない。
[show]
git show HEAD で現在の最新commitを見られる。
logのコミット番号をHEADの代わりに指定すると、そのcommit内容が見られる。
【その他】
[HEAD]
現在のブランチを指す。
checkoutすると変わる。
[スカッシュマージ]
Squash merge。
複数commitを1つのcommitにまとめてマージするやり方。
github上でもプルリク作成後、「create a merge commit」のプルダウンから「Squash and merge」選択で実行可能。
これ見た目スッキリするから結構便利。
[スタッシュ]
git stash save “メッセージ”
復元は git stash apply
【Github】
[draft pull request]
作業中を一旦レビューしてもらう用。
レビュワーを指定できるが、通知は飛ばないので直接連絡。
もちろんmergeはできない。
問題なければ「Ready for review」ボタンからpull requestに変更していつも通りやる。
ちなみにpull request→draft pull requestの変更はできない。
[rebase and merge]
通常のmergeと違い、ブランチの変更をそのまま取り込む。
ハッシュ値が変わるから大規模開発だとpull時にエラー出まくる。
よく分からないならやめといた方がいい。