githubリポジトリにプッシュしているときにこのメッセージが表示されます。それを修正するための段階的な手順を教えてもらえますか?一回だけ押して成功しました。しかし、プロジェクトを更新して2番目のコミットをプッシュしようとすると、「マスターが非早送りを拒否しました」と表示され、プッシュできません。手順を説明してください。
githubリポジトリにプッシュしているときにこのメッセージが表示されます。それを修正するための段階的な手順を教えてもらえますか?一回だけ押して成功しました。しかし、プロジェクトを更新して2番目のコミットをプッシュしようとすると、「マスターが非早送りを拒否しました」と表示され、プッシュできません。手順を説明してください。
回答:
これと同じ問題があり、修正することができました。afk5minは正しかった、問題はあなたがコードをプルしたブランチがリモートリポジトリで変更されたことにある。標準のgitプラクティス(http://git-scm.com/book/en/Git-Basics-Working-with-Remotes)に従って、リモートリポジトリでの変更をローカルの変更に(今)マージしてから、コミットできます。これは理にかなっています。これにより、他の人の変更を加えてコードにマージすることが強制され、コードが他の変更を加えた状態で機能し続けることが保証されます。
とにかく、ステップに進みます。
最初にプルしたブランチをフェッチするように「フェッチ」を構成します。
リモートブランチをフェッチします。
そのリモートブランチをローカルブランチにマージします。
ローカルリポジトリの(マージ)変更をコミットします。
変更をリモートリポジトリにプッシュします。
詳細に...
日食で、「Gitリポジトリ」ビューを開きます。
ローカルリポジトリが表示され、リモートリポジトリがサブフォルダとして表示されることを確認します。私のバージョンでは、リモートと呼ばれ、その中にリモートプロジェクトが表示されます。
左を指す緑の矢印を探します。これは「フェッチ」矢印です。右クリックして「フェッチの構成」を選択します。
URIが表示され、リモートリポジトリを指していることを確認します。
ポップアップのref mappingsセクションを見てください。鉱山は空でした。これは、フェッチしたいリモート参照を示します。「追加」をクリックします。
リモートリポジトリからフェッチする必要があるブランチ名を入力します。鉱山は「マスター」でした(ところで、ここのドロップダウンは素晴らしいでしょう!!、今のところ、入力する必要があります)。ポップアップを続行し、最終的に[完了]をクリックします。
[保存して取得]をクリックします。これにより、そのリモート参照がフェッチされます。
ローカルリポジトリの「ブランチ」フォルダを確認します。これで、リモートフォルダにそのリモートブランチが表示されます。再び、私は「マスター」を参照してください。
「マスター」という名前の「ブランチ」の「ローカル」フォルダーにあるローカルブランチを右クリックします。「マージ」を選択してから、「origin / master」という名前のリモートブランチを選択します。
マージを介して処理します。
ローカルリポジトリへの変更をコミットします。
変更をリモートリポジトリにプッシュします。
おめでとうございます。残りの日は休みを取ってください。
Merge
マスターにして、プロジェクトを右クリックし、再びpush branch Master
働きました
その間(プロジェクトの更新中)、 'master'ブランチに対して他のコミットが行われました。したがって、変更をプッシュできるようにするには、まずそれらの変更をプルする必要があります。
Eclipse Luna + Eclipse Git 3.6.1に適用可能
私、
そして私はEGitでこの問題に直面しました、そしてここに私がそれを修正した方法があります。
はい、変更をコミットする前に誰かが変更をコミットしました。したがって、変更は拒否されます。このエラーの後、変更は実際にはローカルリポジトリにコミットされます。したくなかったPull
linear history
指摘したとおりに維持したかったので、変更しでした。「git pull」が有害なのはどのような場合ですか。
だから、私は次の手順を実行しました
Fetch from Upstream
-それは、リモートアップデート(参照文献やオブジェクト)をフェッチするが、何の更新はローカルで行われません。詳細については、「git pull」と「git fetch」の違いを参照してください。Rebase...
-ポップアップを開き、クリックしPreserve merges during rebase
て理由を確認しますRebase button
conflict(s)
ステップ6に進みステップ11に進みます。Rebase Result
ポップアップが表示され、ちょうどにクリックしますOK
file comparator
開くので、変更する必要があります left side file
。Git Staging
ビューに移動しますstage the changes
。すなわちadd to index
Rebase
->をクリックしますContinue
。すべての競合が解決されるまで7〜10を繰り返します。History
ビューコミット行を選択し、Push Commit
Rebase Commits of local.......
チェックボックスを選択して次へをクリックします。理由を参照-Git:上流から開発ブランチにリベースFinish
注:複数のローカルリポジトリコミットがある場合、複数のマージを回避するために、1つのコミットでそれらを押しつぶす必要があります。
設定し 、あなたが拒否されたメッセージを取得するときにコードを押した後には、configureをクリックすると、この写真のように仕様を追加]をクリックします
ドロップダウンしてref / heads / yourbranchnameをクリックし、もう一度Add Specをクリックします
私はあなたがgitの最新のコミットをしている必要があることを発見しました。したがって、これらは実行する手順です:1)同じファイルで作業していないことを確認してください。そうしないと、DITY_WORK_TREEエラーが発生します。2)最新の変更をプルします。3)更新をコミットします。
お役に立てれば。