Open7
たまに使用するGitコマンド
問題
pushしようとしてremote errorになる。
git push
fatal: remote error:
You can't push to git://github.com/xxx/yyy.git
Use https://github.com/xxx/yyy.git
原因
gitプロトコルでクローン。
git clone git://github.com/xxx/yyy.git
解決方法
git remote set-url origin https://github.com/xxx/yyy.git
問題
pullしようとしたらNot possible to fast-forward
git pull origin main
From https://github.com/xxx/yyy
* branch main -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting.
原因
git merge --ff-only の場合, 現在の HEAD が最新状態もしくはマージがファストフォワードでない場合, そのマージは拒否され, ノンゼロステータスで終了します.
解決方法
--reabse
を使う
git pull origin main --rebase
問題
複数ファイルコミットしている状態から特定のファイルのみ戻したい
解決方法
戻したいコミットIDを指定してcheckout
git checkout コミットID ファイル名
問題
pullしたブランチがforce-pushされて、pullできない
解決方法
resetする
git reset --hard origin/ブランチ名
問題
mergeしようとしたらfatal: Not possible to fast-forward, aborting.
git merge origin foo
fatal: Not possible to fast-forward, aborting.
解決方法
git pull origin foo --rebase
From https://github.com/xxx/yyy
* branch foo -> FETCH_HEAD
Successfully rebased and updated refs/heads/bar.
問題
fork元の変更を取り込みたい
解決方法
リモート追加 & merge or pullでOK
git remote add upstream https://github.com/xxx/yyy.git
git pull upstream main --rebase
問題
git statusしたときに日本語が文字化けする
解決方法
gitconfigに以下を追記する
[core]
quotepath = false