26

この問題を解決するにはどうすればよいですか? コミットしようとしていますが、以下のエラーが発生します。

git プッシュ元 monty_svm_dev

To git@github.com:  ! [rejected]        monty_svm_dev -> monty_svm_dev
(non-fast-forward) error: failed to push some refs to
'git@github.com:/mygit.git' To prevent you from losing history,
non-fast-forward updates were rejected Merge the remote changes before
pushing again.  See the 'Note about fast-forwards' section of 'git
push --help' for details. root@li409-202:~/mypath#
4

4 に答える 4

36

git pull origin monty_svm_dev最初にする

何が起こったのかというと、リモートにはブランチよりも最近の変更があります。

したがって、変更を行う前にpush、まずリモートで変更を取得してマージする必要があります。

これを行うには、次のいずれかを実行しますgit checkout your_branch

git fetch origin your_branchそして、
git merge your_branch

また

git pull origin your_branch # fetch and merge in one operation

あなたのブランチがマスターである場所、またはあなたのブランチ名(monty_svm_dev私が思うにあなたの場合のようです)

これが完了したら(および競合が解決されたら)、次のことができますgit push origin monty_svm_dev

于 2012-09-02T14:54:31.790 に答える
2

それは基本的にあなたが

gitプル

ブランチから、フェッチとマージの 2 つの操作が行われます。ローカルに変更がある場合、git は変更をコミットする前にプッシュすることを許可しません。

また、この問題は、リモートにまだローカルにプルされていない変更があり、マージされていない場合にも発生するため、もう一度プルしてからプッシュする必要があります。問題が解決しない場合は返信してください

于 2012-09-02T16:05:59.527 に答える
0

Git プルを実行します。次に、リモート ブランチの最近のコード変更をローカルに取り込みます。その後、変更をプッシュできます。

于 2014-05-09T13:15:03.027 に答える