👋
Gitの細かいナレッジ
はじめに
弊社のテックブログでGit関連の記事がありますが、使う頻度こそ低いものの
月1ぐらいの頻度で使うことがあるのでそのナレッジを共有します。
Fork元のCommitをCherry-pickする
- Fork元のリポジトリを登録する。
すでに実施済みであれば不要
git remote add upstream <fork元のリポジトリのURL>
-
実施済みかどうかの確認
git remote -v
→ upstreamの登録があれば登録されている
-
リモートリポジトリの情報を取得する
git fetch upstream
- cherry-pickしたいコミットのハッシュを確認します。
これは、git logコマンドを使用してFork元のブランチを確認することで見つけることができます。
git log upstream/<ブランチ名>
- 確認したコミットハッシュを使用してcherry-pickを行います。
git cherry-pick <コミットハッシュ>
Branch間でのファイル操作
- 別ブランチのファイルをもってくる
git checkout <ブランチ名> -- <ファイル名>
- 別ブランチのファイルとの差分を確認する
git diff <ブランチ名1>..<ブランチ名2> -- <ファイル名>
Push したコミットを取り消す
- 取り消したいコミットのハッシュを確認します。
git log
- Revertを実行します。
git revert <コミットハッシュ>
- Revertの内容をpushします。
git push origin -u head
コミットをまとめる
コミットしてしまったけどまだコミットしたい内容が残っていて
追加コミットしたものまとめることで前述したcherry-pickの回数などを減らすことができます。
- 直近のコミットをまとめる
git rebase -i HEAD~<コミット数>
エディタが起動するので
pickの箇所をsquashに変更して保存します。 squashの箇所はsでも代用可能です。
まとめ
他にもこのようなGit操作便利、実施しているなどがあれば
コメントで教えていただけると幸いです。
Discussion