Git
Git本
https://git-scm.com/book/ja/v2
Gitを巻き戻す
https://git-scm.com/docs/git-reset
hashの位置までコミットを戻す、ディレクトリはそのまま。
code:reset.sh
#@^ HEAD-{n}
git reset --soft comit_hash
https://www.nakamuri.info/mw/index.php/リモートリポジトリの巻き戻しが拒否される
共同作業しているリモートリポジトリへのgit resetは危険性があるらしい。
差分
文字単位で差分を取る。
code:sh
git diff --color-words --word-diff-regex='\\w+|[^:space:]'
Merge
通常のマージ
--no-ff
git merge branch_name --no-ff
マージコミットを必ず作成する
特に理由がなければ、これが無難かと思う。
git merge branch_name
--no-ffを付けないファストフォワードマージだと、マージコミットが基本的には作成されない。
git rebase
ブランチのコミットがきれいになるが、コミットを差し替えているため、git push がそのままだとできない。
コミットをまとめてマージ
GithubでのWeb上からのマージの仕方3種とその使いどころ - Qiita
squash
git merge --squash
mergeの取り消し
git merge --abort
コンフリクト修正中の取り消し?
git reset --hard HEAD
特定コミットidをマージする
git cherry-pick
Push
以下実行する際は注意する
git push --force-with-lease
ローカルが新しければ上書き
git push -f
強制
TagをPush
git tag -a $tag -m comment;
git push origin $tag
他
日付順でブランチをソートして表示
git branch --sort authordate
------
リモートリポジトリの設定
git remote add <name> <url>
nameは任意、remoteのalias?
private リポジトリとしてフォークするとき、フォーク先のリポジトリを追加する。
Gitライブラリ
tig
shift+oで、diffのビューモード
lazygit
キーバインド
https://github.com/jesseduffield/lazygit/blob/master/docs/keybindings/Keybindings_en.md
Monorepo
#Monorepo
モノレポについての誤解 - Misconceptions about Monorepos: Monorepo
https://www.graat.co.jp/blogs/ck1099bcoeud60830rf0ej0ix
復数のアプリを同じレポジトリで管理
githubはフォルダーごとに権限設定可能みたい
CI/CD for monorepos
https://www.serverless.com/blog/cicd-for-monorepos
Git Bash
参考
Gitインストール手順<Windows向け> - IT入門書籍 スッキリシリーズ
git config --local core.autocrlf input
派生元のブランチ取得
git show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -1 | awk -F'[]~^[]' '{print $2}'