毎回忘れて,そのたびに調べてたけど面倒なので,まとめる
キーワードだけ書いてるので,それで思い出せなければぐぐる
(毎回その場しのぎでやってきたけど,そろそろ体系的に学び直した方が良いかもしれない)
git remote add <remote> <URL.git> # ローカルにリモートを追加
# 一般的に,<remote>はorigin,upstreamとすることが多い
git remote add origin ...
git remote add upstream ...
# ここで,upstreamに直接pushしたくない時は,URLの部分にダミー文字列を入れておく
git remote set-url --push upstream dummy-url-dayo
# GitHubでレポジトリを作って,ローカルのフォルダを紐づけようとした時,祖先が一致してないよ,と怒られる.
# git init して
# git pull したら
# fatal: refusing to merge unrelated histories と言われる
# allow-unrelated で許してもらう
git pull --allow-unrelated-histories origin main
# または
git pull --rebase
ちなみに
git remote -v # リモート一覧を確認
git remote remove <remote> # リモートとの紐づけを解除
# git checkout は非推奨
# git switch を使う
# checkout = switch + restore らしい
git switch -c <new b> # bブランチを作成して移動
git switch - # 一つ前のブランチに移動
git switch <b> # bブランチに移動
git branch -m <b> <new b> # bブランチの名前を変更
git branch -D <b> # bブランチを削除
git branch -a # ローカル,リモート,全てのブランチを表示
git branch -u <remote>/<remote b> <b> # bブランチが追跡するリモートブランチ(upstream)を設定
git branch -vv # ローカルブランチが追跡するリモートブランチ(upstream)を表示.`.git/config`ファイルで確認することも出来る
git push <remote> <b> # bブランチをリモートにpush
git fetch --prune # リモートのbranch情報をローカルに反映(PRをマージした後とか)
git fetch <remote> (<remote b>) # リモート(全体または,特定のブランチ)をローカルにfetch
git merge --no-ff <remote>/<remote b> # 作業中のブランチに,remoteのブランチを取り込む
git rebase <remote>/<remote b> # 作業中のブランチに,remoteのブランチを取り込む
git config --list
# 初期設定
git config --global user.name "hoge"
git config --global user.email hoge@piyo.com
git config --global core.editor "vim"
git config --global init.defaultbranch "main"
git stash
git stash save "msg"
git stash list
git stash pop # 最新のstashを戻して削除.pop = apply + drop
git stash apply # stashを戻すだけ.stashは残る
git stash drop # stashを消す
git reset # 修正履歴を残さない
git revert # 修正履歴を残す
git commit --amend # コミットを取り消し
ref(resetとrevertの違い)
- https://qiita.com/Sammy_U/items/e37c7242544fd1da81be
- https://qiita.com/S42100254h/items/db435c98c2fc9d4a68c2
git rm
git rm --cached <file> # 一度addしたファイルを追跡対象外にする.これしないと,gitignore効かない
git tag
git tag -a <tag name> -m <msg>
git push <remote> <tag name>
git push <remote> --tag
ref