当ページのリンクには広告が含まれています。
ちょこちょこ躓くんだよな…。
こういうのに時間取られるんだよ…。
PS D:\htdocs\XXXXX.jp-XXXXX\web\XXXXX\clone\XXXXX> git push origin main
To https://github.com/XXXXX/XXXXX.git
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/XXXXX/XXXXX.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. If you want to integrate the remote changes,
hint: use 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
# 日本語訳
PS D:\htdocs\XXXXX.jp-XXXXX\web\XXXXX\clone\XXXXX> git Push Origin main
https://github.com/XXXXX/XXXXX.git へ
! [拒否] メイン -> メイン (非早送り)
エラー: 一部の参照を「https://github.com/XXXXX/XXXXX.git」にプッシュできませんでした
ヒント: 現在のブランチの先端が遅れているため、更新は拒否されました
ヒント: リモートの対応物。 リモートの変更を統合したい場合は、
ヒント: 再度プッシュする前に「git pull」を使用してください。
ヒント: 詳細については、「git Push --help」の「早送りに関する注意」を参照してください。
こういう場合は、
PS git pull origin main
PS git push origin main
で上手く行くんだけど…。
やってみると。
PS D:\htdocs\XXXXX.jp-XXXXX\web\XXXXX\clone\XXXXX> git pull origin main
From https://github.com/XXXXX/XXXXX
* branch main -> FETCH_HEAD
fatal: refusing to merge unrelated histories
# 日本語訳
PS D:\htdocs\XXXXX.jp-XXXXX\web\XXXXX\clone\XXXXX> git pullorigin main
https://github.com/XXXXX/XXXXX より
* ブランチ main -> FETCH_HEAD
致命的: 無関係な履歴のマージを拒否する
うーん。うーん。
対応方法 3)fetch して rebase する
rebase で、リモートの変更の後に自分の変更を持ってくることもできる。
git fetch (リモートの変更を取ってきて) git rebase origin/master
履歴はすっきりする(Aさんの変更の後に、Bさんの変更が入りました)。
【git】git pushがrejectされたときの対応方法 at softelメモ
PS D:\htdocs\XXXXX.jp-XXXXX\web\XXXXX\clone\XXXXX> git fetch
PS D:\htdocs\XXXXX.jp-XXXXX\web\XXXXX\clone\XXXXX> git rebase origin/main
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
error: could not apply 87ef420... first commit
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 87ef420... first commit
手動で競合を解消するしかないのか…。
この競合解決がすげー面倒なんだよな…。
.gitignore
の変更を取り消し。
駄目だ。
もうにっちもさっちもいかない。
リモートもローカルも全部消していちからやり直す。
まとめ
結局どう解決したらいいのか分からないwww
SVNだと最終的には、ローカルにチェックアウトしてたフォルダをリネーム、.svn
フォルダを削除してよけておく。
新しいフォルダにチェックアウトして、新旧のフォルダで差分取って~みたいなことで解決してたんだけどGitは未だにどうしたらいいか分からんわ。