私は、BitBucketでgitを使用する開発者数名のチームに取り組んでいます。リリースまでdev
にプッシュするのではなく、master
ブランチで作業しています。
開発者の1人が誤って自分のコードを誤って上書きしてしまったので、今は正しいコードをリポジトリにプッシュしようとしています。私は数日間このエラーを読んでいますが、次のエラーが発生しているため、レポにプッシュできません:
! [rejected] master -> dev (fetch first)
error: failed to Push some refs to 'https://[email protected]/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git Push --help' for details.
指示とpull
に従いますが、マージの競合が発生します。マージ競合のメッセージを入力した後、ローカルコードは、他の開発者が偶然アップロードした(pull
から予想される)誤ったコードになりました。そのため、コミットする前にコピーしたバックアップで誤ったコードを置き換え、もう一度プッシュしようとすると、同じエラーが発生します。
本当にイライラします。チームを助けて貢献したいのですが、このエラーのためにできません。誰もこの問題を解決する方法を知っていますか?助けていただければ幸いです。
コミットするために実行するコマンドは次のとおりです。
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git Push remotename master:dev
この順序を守れば、マージの競合は発生しないと思いました。私は間違っていたと思います。再度、感謝します
更新:Googleとstackoverflowで数時間探し、別の指示に従ったことを付け加えますが、Push
をdev
ブランチに追加することはできません。
git pull <remote> master:dev
はremote/master
ブランチをフェッチし、local/dev
ブランチにマージします。
git pull <remote> dev
はremote/dev
ブランチをフェッチし、現在のブランチにマージします。
競合するコミットはremote/dev
にあると言ったので、それはおそらくあなたがフェッチしてマージするつもりだったブランチです。
その場合、実際にはローカルブランチに競合をマージしていませんでした。作業コピーに誤ったコードを見たと言ったので、これはちょっと奇妙です。 remote/master
で何が起こっているのかを確認することをお勧めします。
ターミナルでこのコマンドを使用します
リモートリポジトリにプッシュしようとしているが、まだプルされていない新しいファイルをリモートで作成したときに発生します。Readme
と言います。その場合、エラーが言うように
gitは更新を拒否します
ローカル環境では更新されたリモートを取得していないためです。最初にリモートからプルしてください
git pull
ローカルリポジトリが更新され、新しいReadme
ファイルが追加されます。次に、更新された変更をリモートにプッシュします
git Push Origin master
私はそれを修正しました、私は何をしたのか正確にはわかりません。私は単純に押したり引いたりしてみました:
git pull <remote> dev
の代わりにgit pull <remote> master:dev
彼らが同じ問題を抱えている場合、これが誰かを助けることを願っています。
実際、githubは思ったよりもはるかに単純であり、gitリポジトリにいくつかのファイルを明示的に挿入した後でもPushを実行しようとすると必ず発生します。
:git pull
その後..
:git Push
注:リポジトリをプルした後に誤ってvimエディターで立ち往生した場合は、心配しないでvimエディターを閉じてプッシュを試してください:)
このエラーが発生したのは、サーバーに更新があったがSourceTreeが利用可能な更新を表示していなかったためです(おそらく最後にチェックしたときにオフラインだったため)。したがって、ソースツリーを更新したところ、1つのアイテムではなく2つのアイテムがプッシュに表示されています。
必ずrefreshまたはpullこのエラーが発生してから再試行する場合。
以下を入力する必要があります。
$ git pull
$ git fetch
$ git merge
git Push Origin master --force
を使用すると、大きな問題が発生します。
プッシュする力
git Push -f Origin master
最初にSSDT VSプロジェクトがありました。 Githubに持っていたプロジェクトをプッシュしたかった。私は、Pushがmasterブランチを開始する私のレポの初期バージョンになることを望んでいました。 git Push -f Origin masterのDonalの提案は、これを達成する最も簡単な方法(私が見た)でした。何も書き直すことを心配する必要がなかったので、それは理にかなっているように思えました。
これは通常、リポジトリにローカルに存在しないアイテムが含まれている場合に発生します。そのため、変更をプッシュするには、この場合、リモートの変更を統合してからプッシュする必要があります。
リモートからプルを作成します
git pull Origin master
次に、変更をそのリモートにプッシュします
git Push Origin master
これを試すことができます:git pull Origin master --rebase