web-dev-qa-db-ja.com

拒否されたマスター - >マスター(非早送り)

私は自分のプロジェクト(新しいリポジトリ内のすべてのファイル)をプッシュしようとしています。私は手順に従いますが、git Push -u Origin masterを押したときにこのエラーが発生します。

! [rejected]        master -> master (non-fast-forward)
error: failed to Push some refs to '[email protected]:asantoya/projectnewbies.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.

私は何度もこのエラーに遭遇したので、どうすればいいのかわからない。

171
Asantoya17

エラーメッセージが言うように:git pullを試みる前にgit Push。どうやらあなたのローカルブランチはあなたのトラッキングブランチと同期していないようです。

プロジェクトのルールやワークフローによっては、git pull --rebaseを使うこともできます。

130
pmr

これを試してください:git Push -f Origin master

122
a_shahmatov

このコマンドは私にはうまくいきました

git Push -f Origin master
13
raed

このエラーを受け取りました。

ローカルのgitリポジトリを作成した後にgithubリポジトリを作成したので、githubにプッシュする前にローカルへの変更を受け入れる必要がありました。この場合の唯一の変更点は、githubリポジトリを作成する際のオプションのステップとして作成されたreadmeファイルです。

git pull https://github.com/*username*/*repository*.git master

リポジトリのURLは、プロジェクトのgithubページでここから取得します。

enter image description here

それから私は再初期化しました(これは必要ではないかもしれません)

git init
git add .
git commit -m "update"

それからプッシュ:

git Push
11
blue-sky

私はgithubで新しいリポジトリを作成し、私は同じ問題を抱えていましたが、引っ張っている間それも問題を抱えていたので、これは私にとって役に立ちました。

しかし、これはすべてがめちゃくちゃになる可能性があるのですでに多くのコードを持っているレポではお勧めできません。

git Push Origin master --force
8
Muneef M

git pullが役に立たない場合は、おそらくあなたは自分の変更をプッシュしたことになり(A)、その後さらに変更を追加するためにgit commit --amendを使いました(B)。したがって、gitはあなたが歴史を失うことができると考えています - それはAからのすべての変更を含んでいるにもかかわらず、Bを異なるコミットとして解釈します。

             B
            /
        ---X---A

誰もAの後にリポジトリを変更しないのであれば、git Push --forceを実行できます。

しかし、他の人からAの後に変更があった場合、

             B
            /
        ---X---A---C

次に、personをAからBに変更します(C-> D)。

             B---D
            /
        ---X---A---C

または手動で問題を解決してください。私はまだその方法を考えていませんでした。

7

このコマンドを使います。

git pull --allow-unrelated-histories <nick name of repository> <branch name>

好きです:

git pull --allow-unrelated-histories Origin master

このエラーは、プロジェクトに共通の祖先がない場合に発生します。

6
Umar Farooq

警告:

'git pull'を選ぶのはALWAYS解決策ではないので注意してください。意図的にリポジトリの履歴を変更した場合は、この問題(Qに記載されているもの)に直面する可能性があります。その場合、gitはあなたの履歴の変更をあなたのリモートリポジトリの新しい変更と混同します。故に、あなたはgit Push --forceを選ぶべきです、なぜならgit pullを呼び出すことはあなたがあなたの歴史に行ったすべての変更を意図的に元に戻すからです。

6
Hoodi

これは私がdevelopmentブランチにいて、masterブランチが最新のものではないときに起こりました。

そのため、DevelopブランチからPushをgitしようとしたときに、そのエラーが発生しました。

マスターブランチに切り替えてgit pullしてからブランチの展開とgit Pushに戻って修正しました。

$ git fetch && git checkout master
$ git pull
$ git fetch && git checkout develop
$ git Push
4

このコマンドを試してみてください。 "git pull Origin master"

それは私のために働きました。

このリンクを確認してください。 https://help.github.com/articles/dealing-with-non-fast-forward-errors

4
firefly28

! [拒否]マスター - >マスター(非早送り)

慌てないでください、これは非常に簡単に修正できます。あなたがしなければならないのはプルを発行することだけであり、あなたのブランチは早送りされるでしょう:

$ git pull myrepo master

それからあなたのプッシュを再試行すれば、すべてうまくいくはずです。

$ gitプッシュgithubマスター

4
user3292712

これはあなたがあなたのマスターでいくつかの変更をしたのでプロジェクトがあなたに最初に引っ張るように頼むからです。とにかくプッシュしたい場合は、次のように入力してブルートフォースを使用できます。

git Push -f Origin master

変更を最初にコミットすることを忘れないでください。

git add .
git commit -m "Your commit message"
4
Guim Gonzalez

私は開発マシンでこの問題を抱えていました。 devブランチはうまく機能していましたが、masterブランチが私にくれました(devブランチにいるときはgit Pushing):

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

だから私は試してみました:

git checkout master
git pull

それは私に与えた:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either.

私はマスターブランチが.git/configから抜けているのを見つけて、加えました:

[branch "master"]
    remote = Origin
    merge = refs/heads/master

その後、git Pushdevブランチでうまくいきました。

3
guaka

あなたがする必要があります

git branch

出力が次のようになっているとします。

* (no branch)
master

それから

git checkout master

チェックアウトするとコミットされていない変更がすべて失われるため、保留中のコミットがないことを確認してください。

3
cage

これはあなたがそのマスターに対立する変更を加えたからです。そして、あなたのリポジトリサーバはこれらの言葉でそれをあなたに言うことができません、それはそれが彼があなたのためにこれらの衝突に対処する問題ではないのでこのエラーを与えます、のように?

1- git pullこれはあなたのコードをあなたのリポジトリからあなたのサイトマスターのあなたのコードにマージします。だから衝突が見られます。

2 - これらのmanualementeの矛盾を扱います。

3-

git Push Origin master

そして、その前に、あなたの問題は解決されました。

私は問題と同じでした。私はGit Tortoiseを使っています。ただ右クリック - >亀Git - >クリーンアップ。今、あなたはGithubにプッシュすることができますそれは私とうまくいった:D

1

私はこの問題を解決することができた唯一の唯一のローカルとGitレポを削除し、両端で同じを作成することでした。今のところうまくいきます。

0

私のリモートはローカルと同期していなかったのでこれは私のために働いた

git pull --rebase

git pullをもう一度実行すると、すでに最新の状態になっていることを確認してください。これで、Originにプッシュする準備ができました。

git remote add Origin remote repository URLが既にあるとします。

行う

`git Push Origin master`  

スクリーンショットはそれをすべて言う enter image description here

0
maheshmnj

Herokuにプッシュしようとしているときに誰かがこのエラーを持っているならば、ちょうどこのように 'Origin'を 'heroku'に置き換えてください:git Push -f heroku master

0