0

git push するたびにこのエラーが発生します。この作業ディレクトリのみ。私が言えることから、同じ権限を持っている別の同様のものではありません。

$ git push
Counting objects: 15, done.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 683 bytes, done.
Total 8 (delta 5), reused 0 (delta 0)
remote: Sending mail...
To git@devel.site.com:mysite.git
dd36358..86bc572  redesign -> redesign
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@devel.site.com:mysite.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

これは権限の問題ですか? git pull は正常に動作しているようで、 git push も成功しているようですが、それでもエラーが発生します。

何か案は?

4

3 に答える 3

0

それでも問題が解決しない場合はgit push、現在のブランチだけでなく、すべてのブランチをプッシュしています。

git pullただし、の正反対ではありませんgit push。次のコマンドを実行するのとまったく同じです。

git fetch
git merge origin/thecurrentbranch

つまりgit pull、作業ブランチのみをマージします。他のブランチはマージしません。

クリーンアップしてもまだプッシュできない場合git pullは、他のブランチのいずれかが古くなっていることを意味し、それが git の不満です。

解決策は、現在のブランチのみをプッシュすることです。

git push origin thecurrentbranch

thecurrentbranchはアクティブなブランチの名前であり、origin上流のリポジトリであると想定していることに注意してください。

編集:元の質問をよく見ると、啓発的です:

dd36358..86bc572  redesign -> redesign
! [rejected]        master -> master (non-fast-forward)

おそらくredesignチェックアウトしたので、これgit pullが動作しているものです。ただし、git はmasterブランチを拒否しています。したがって、この特定の問題を解決するには、redesign明示的にプッシュするか、次のようにします。

git checkout master
git merge origin/master
git push
于 2011-09-13T17:43:01.297 に答える
0

エヘム

Merge the remote changes (e.g. 'git pull') before pushing again.

これは、私には許可の問題のようには見えません。

于 2011-08-03T00:23:44.110 に答える
0

これはパーミッションの問題ではありません。エラー メッセージを参照してください。

エラー: 一部の参照を 'git@devel.site.com:mysite.git' にプッシュできませんでした 履歴が失われないようにするため、早送り以外の更新は拒否されました. 詳細については、「git push --help」の「早送りに関する注意」セクションを参照してください。

の「早送りに関する注意」セクションにgit push --helpは、問題の長い説明がありますが、簡単に言えば; プッシュ先のブランチは現在のブランチの直接の祖先ではないため、リモート サーバーはプッシュを許可しません。ローカルの変更を修正する必要があります (たとえばgit pull、不足している変更を取得するかgit rebase、変更をリモート ヘッドにリベースするため)、またはリモート サーバーにプッシュを強制的に受け入れるようにする必要があります--force(後者はほとんど正しい動きではありません)。

于 2011-08-03T00:24:22.283 に答える