5

リモートリポジトリにプッシュしようとしていますが、以下のエラーが発生し続けます。

$ git push
To user@remote.net:/home/user/repos/remoterepo.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'user@remote:/home/user/repos/remoterepo.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 remote show originを示していますmaster pushes to master (local out of date)。私は支店からのみプッシュするので、時代遅れであってはならないことを確信しています。

2つの質問があります。

  1. ローカルブランチにリモートを上書きさせることは可能ですか?プルすると、リポジトリ内のものよりも明らかに後である変更が上書きされます。

  2. これは私がこの問題を抱えた2回目または3回目です。git version 1.7.3.1.msysgit.0gitのローカルバージョンは(Windowsの場合)であり、リモートバージョンはgit version 1.6.5(Ubuntu Jaunty)であると私が考えることができる唯一のものです。異なるgitバージョンが何らかの破損を引き起こしている可能性はありますか?

4

1 に答える 1

14
  1. (以下の更新を参照) はい、可能です: git push --force. ただし、これは、前回以降誰もリポジトリを読んでいないことが確実な場合にのみ行ってpushください (詳細な議論については、リモート Git リポジトリに修正コミットをプッシュするにはどうすればよいですか?を参照してください)。
  2. 私には、git pullできるようになる前に、最初にやらなければならないように思えますpush。時間関連のエラーではないと思います。このメッセージは、サーバー上に新しいコミットがあることを示しています (コミット日付ではなく、コミット ハッシュによって識別されます) ... 何が変更されたかを確認するには、git fetch代わりにa を実行git pullし、git log origin/master...

更新: 一方、何かを誤って壊してしまわないようにするオプションをpush学びました: https://developer.atlassian.com/blog/2015/04/force-with-lease/ . 可能な限りこれを優先してください!--force-with-lease--force

于 2011-04-01T07:11:41.790 に答える