2

私はいくつかの git リポジトリをセットアップしており、新しいものをセットアップして最初のコミットとプッシュを行うたびに、このコマンドは失敗しgit push origin master、いくつかの参照をプッシュできなかった方法についてエラーが発生します。

----@--------- /c/git/repo/---- (master)
$ git push origin master
--------------------------------
--------------------------------
To -----------------------------
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/-----/----.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 push --force origin masterそれを行うとうまくいくのはなぜですか、そしてなぜ私は毎回それをしなければならないのですか?

4

1 に答える 1

4

このエラー...

 ! [rejected]        master -> master (non-fast-forward)

...これは、リモート リポジトリにまだリポジトリにない変更があることを意味します。.gitignoreGitHub でリポジトリを作成している場合は、リポジトリにまたはREADMEファイルを事前入力するように GitHub に依頼すれば、空でないリポジトリを作成できます。

いずれにせよ、このエラーが表示された場合--forceは、(リモート リポジトリの変更が上書きされます) を使用するのではなく、次のコマンドを実行する必要があります。

git pull

これにより、すべての変更が取り込まれ、それらがローカル リポジトリにマージされますgit push

また、リモート リポジトリを別のディレクトリに複製して、内容がわからない場合はその内容を調べることもできます。

于 2012-08-01T17:15:03.973 に答える