🍒
git コマンドメモ
実際に使ったコマンドライン。
git delete
でブランチを削除する
git checkout main // 目的のブランチから抜ける
// delete local branch
git checkout development
git branch -d branch-name // リモートにある場合
git branch -D branch-name // リモートにない場合
// delete remote branch
git push --delete origin branch-name // リモートのみ削除する、リモートにない場合はエラー
git reset
git reset --hard origin/main // ローカルの変更は完全になくなる、その後 git pull
git reset HEAD // git addの取り消し。ローカルに変更分が残る
git reset HEAD file_name // 同上。特定のファイルのみの取り消し
git stash
で現在の変更を退避する
git stash // 簡易
git stash apply // 最後にStashしたものが戻る
git stash save "message" // メッセージを入れる場合
git stash list // これまでのStashしたリストを見る
git stash apply 3 // stash@{3}に戻す
git stash push -- package-lock.json //1ファイルだけStashする
git config
のローカルとグローバル
// 設定はすべてのプロジェクトおよびリポジトリで共有される
git config --global user.name "xxx"
git config --global user.email yyy@zzz.com
// 異なるユーザー情報を使う場合、以下のようにローカルリポジトリ内で設定する
git config user.name "xxx"
git config user.email yyy@zzz.com
その他の便利なコマンド
git commit --amend //コミットメッセージを変更する
リベースを使った作業後の手順
git switch -c [branch-name]
git add .
git commit -m "commit message"
git push origin HEAD // 一旦、pushしておくと安全
git stash // 必要な場合
git pull --rebase origin development // リベース
// ローカルで自分の変更の動作を試し、問題がなければ以下をやる
git branch --set-upstream-to=origin/[branch-name] // 必要な場合、紐付けする
git push -f origin [branch-name]
自分の変更のみを一旦、プッシュするのは、必ず動く状態をとっておくため。他の人の変更で、自分の変更が動かなくなった場合は、解決するまでプッシュしないのが安全。git checkout -b [branch-name]
は、git switch -c [branch-name]
(Git v2. 23以降)は同じこと。
Git Rebase
でコミットを Squash(統合)する手順
git add .
git commit -m "comment message"
git rebase -i [branch name]~2 //現在のブランチに対して最後の2つのコミットを統合する
// vim で操作 - 統合したいコミットの前にある「pick」のテキストを「s」に変更する
git push -f origin [branch name] //リモートリポジトリに強制的にプッシュする
git pull --rebase origin development
は、以下の2行と同じ
git config pull.rebase true // リベースにセット
git pull origin development
.git/config
で、rebase: true
にセットされる。
Discussion