質問
マスターブランチとベータブランチがあります。プッシュが拒否される状況があります:
edit2:私はブランチマスターにいます。
$ git push
Counting objects: 9, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 669.81 KiB, done.
Total 6 (delta 2), reused 0 (delta 0)
To git@github.com:foobar/codedemo.git
a5fc71d..64430c1 master -> master
! [rejected] beta -> beta (non-fast forward)
error: failed to push some refs to 'git@github.com:foobar/codedemo.git'
通常、ベータ版をチェックアウトしてからベータ版をプルすると、おそらくこれで解決します。
しかし、これは本番Webサイトなので、ここではベータ版をチェックアウトできません。ベータ版をチェックアウトせずにプルする方法はありますか?
これは生産サイトなので、どういうわけか立ち往生しています。
編集:コードは別の場所でもチェックアウトされますが、ここで問題を解決するために別の場所から何かを行うことはできますか?他の場所に問題はありません。
Edit3:受け入れられたソリューションの助けを借りて、しばらくしてからそれを行うことができましたが、2番目のクライアントのないソリューションを希望します
解決
ベータを他のブランチとしてプッシュし、それを解決するためにチェックアウトできるどこかに行くことができます。
git push origin beta:beta-temp
# on a different machine
git fetch
git checkout beta-temp
git rebase origin/beta # puts your new commits on top of the upstream
git push origin beta-temp:beta
git push origin :beta-temp # to delete it
他のヒント
おかしなことをしていない場合、その理由は、リモートに認識していないコミットがあるため、プッシュの続行を許可すると、そのコミットが完全に無視されるためです。
最初にプルを試してください。 2つのコミットを自動的にマージしようとします。その後、プッシュできるようになります。
現在チェックアウトされていないブランチをプルした場合、それでもマージが作成されると考える。
どのブランチをプッシュしようとしていますか?
デフォルトでは、 git push
は設定されたすべての追跡されたブランチをプッシュします。
これを試して、現在のブランチのみをプッシュします:
git push origin HEAD
所属していません StackOverflow