Githubリポジトリにプッシュしているときにこのメッセージが表示されます。修正手順を教えてください。私は一度だけプッシュし、成功しました。しかし、プロジェクトを更新して2番目のコミットをプッシュしようとすると、「マスターは非早送りを拒否しました」と表示され、プッシュを許可しません。手順を説明してください。
これと同じ問題があり、修正することができました。 afk5minは正しかったのですが、問題は、リモートリポジトリで変更してからコードをプルしたブランチです。標準のgitプラクティス( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes )に従って、これらの変更をリモートでマージする必要がありますコミットする前に、ローカルの変更にリポジトリを保存します。これは理にかなっています。これにより、他の変更を取得してコードにマージし、他の変更が適切に機能し続けられるようにします。
とにかく、手順に進みます。
「フェッチ」を設定して、最初にプルしたブランチをフェッチします。
リモートブランチを取得します。
そのリモートブランチをローカルブランチにマージします。
ローカルリポジトリで(マージ)変更をコミットします。
変更をリモートリポジトリにプッシュします。
詳細に...
Eclipseで、「Gitリポジトリ」ビューを開きます。
ローカルリポジトリが表示され、リモートリポジトリがサブフォルダとして表示されることを確認してください。私のバージョンでは、リモートと呼ばれ、その中にリモートプロジェクトが表示されます。
左を指す緑色の矢印を探します。これは「フェッチ」矢印です。右クリックして、「フェッチの構成」を選択します。
URIが表示され、リモートリポジトリを指していることを確認してください。
ポップアップのrefマッピングセクションを確認します。私は空でした。これは、取得するリモート参照を示します。 「追加」をクリックします。
リモートリポジトリから取得する必要があるブランチ名を入力します。私は「マスター」でした(ところで、ここのドロップダウンはすばらしいでしょう!!、今のところ、あなたはそれをタイプしなければなりません)。ポップアップを続行し、最終的に[完了]をクリックします。
[保存して取得]をクリックします。これにより、そのリモート参照が取得されます。
ローカルリポジトリの「Branches」フォルダを見てください。これで、リモートフォルダにそのリモートブランチが表示されます。繰り返しますが、「マスター」が表示されます。
「master」という名前の「Branches」の「Local」フォルダー内のローカルブランチを右クリックします。 「マージ」を選択し、「Origin/master」という名前のリモートブランチを選択します。
マージを処理します。
ローカルリポジトリへの変更をコミットします。
変更をリモートリポジトリにプッシュします。
美味しい飲み物を飲みに行き、お祝いしましょう。休みを取りましょう。
私の場合、プッシュ中にForce Update
チェックボックスを選択しました。それは魅力のように働いた。
それまでの間(プロジェクトの更新中)、「マスター」ブランチに対して他のコミットが行われました。したがって、変更をプッシュできるようにするには、まずこれらの変更をプルする必要があります。
Eclipse Luna + Eclipse Git 3.6.1に適用可能
私、
そして、私はEGitでこの問題に直面しました、そして、ここにそれを修正する方法があります。
はい、変更をコミットする前に誰かが変更をコミットしました。そのため、変更は拒否されます。このエラーの後、変更は実際にローカルリポジトリにコミットされます。 - で指摘されているようにlinear history
を維持したいので、変更を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 拒否されたメッセージを受け取ったときにコードをプッシュした後、configureをクリックし、この図に示すようにAdd specをクリックします
Gitビューを開く:
1-プロジェクトを選択し、マージを選択2-リモートトラッキングを選択3- OKをクリック
Gitはリモートブランチをローカルリポジトリにマージします
4-次にプッシュ
このエラーは、リモートリポジトリに他のコミットがあり、ローカルブランチよりも先に進んだことを意味します。
git pullの後にgit Pushを実行してみます。競合する変更がない場合、git pullは私の変更をそのまま維持しながら、ローカルブランチに最新のコードを取得します。
次にgit Pushを使用すると、変更内容がmasterブランチにプッシュされます。
私はあなたがgitの最新のコミットをしなければならないことを発見しました。そのため、これらの手順を実行します。1)同じファイルで作業していないことを確認します。そうしないと、DITY_WORK_TREEエラーが発生します。 2)最新の変更をプルします。 3)更新をコミットします。
お役に立てれば。