ryouta9121
@ryouta9121

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

git commit 反映されない

解決したいこと

git push を行うと下記のように行が追加されていきます。
加えて、リモートリポジトリへのcommitが反映されていません。
現在どのような状況なのか?どうすればcommitが反映されるようになるのか?
回答よろしくお願い致します。

※一度、ローカルリポジトリをmasterからmainに
変更しようと思い、下記と打ち込んでいます。
git branch -m master main

発生している問題・エラー

$ git log --oneline 
00ffc49 (HEAD -> main) view commit
cd3dc17 rails routing
e9fc677 today commit
4e73775 users commit
f7df06f (origin/master, master) rails commit

git push origin main した場合

 ! [rejected]        main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/ユーザ名/リポジトリ名.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

git push origin master した場合

Everything up-to-date

自分で試したこと

git push -u origin main
としてから
Github上で
Settings>Branches>Default branchでmain
を切り替えるなどしました。

0

1Answer

やりたいのは、「ローカルのmainをGitHubの同名ブランチにプッシュする」ことでしょうか。

プッシュができるのは、ローカルブランチがリモートブランチに先行しているとき(fast-forward)、
すなわち、リモートブランチのすべてのコミットを含んでいるときに限ります。

今回はnon-fast-forwardなので、リモートのmainに、ローカルのmainに含まれない独自のコミットがあります。
双方のログを比べるなどして、まずは状況を把握してください。
commit --amendなどの歴史改変が原因になっている可能性もあるので、
コミットメッセージだけでなく、コミットIDや内容を比較してください)

状況が理解できたら、対処は次の3パターンです。
簡易的な作業例も付しますが、あくまで意味を理解した上でお願いします。
エラーメッセージで検索すれば情報はいくらでも出てきますので。

1. ローカルのコミットと、リモートのコミット双方を残す場合

追跡ブランチを介して、ローカルのmainをリモートのmainにリベースします。
(マージでも可)

git checkout main
git rebase origin/main  # ここで競合が起きる可能性がある
git push

2. リモートのコミットを優先し、ローカルのコミットをなかったことにする場合

ローカルブランチを作り直します。

git checkout master
git branch -D main
git checkout main

3. ローカルのコミットを優先し、リモートのコミットをなかったことにする場合

公開リポジトリなど、他人に影響の及ぶ場所では厳禁です。
GitHub上でmainブランチを削除し、改めてプッシュします。
設定が許すなら強制プッシュでも可。

0Like

Your answer might help someone💌