技術系

実務寄り Gitコマンドまとめ

技術系

こんにちは、なかにしです。

今回はほぼ備忘録です。すみません。
実務(副業)で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時にエラー出まくる。
よく分からないならやめといた方がいい。