2017-03-03 12 views
2

開発プロセスの一環として、ローカルブランチを作成してから、コードを変更してファイルをコミットしました。最初に変更をプッシュすると、リモートサイトに新しいブランチが作成されます。次回はローカルブランチのコードを変更して、これらの変更をリモートブランチにプッシュしたいと思います。ここで問題となるのは、ローカルの変更をプッシュする前にマスターがさらにコミットして前進していることです。プッシュを実行しようとすると、リモートブランチがマスターの後ろにあり、プッシュが拒否されるというメッセージが表示されます。これはどうすればいいですか?gitのリモートブランチへの変更をプッシュできません

+1

コミット&リモートに変更をプッシュします。 'git commit -am 'Message''、' git push origin HEAD'です。何かエラーがありますか? –

+0

"git push origin"を使用してブランチにプッシュ

答えて

1

あなたが作業している枝のリモートバージョンが先にあなたのローカルバージョンのであるので、あなたが最初に

  • 変更を引っ張ってきた、警告として git pull origin yourBranch
    • 、あなたが持つかもしれませんこの時点でいくつかの競合が発生している場合は、それらを解決してからコミットする必要があります。そうでなければ、競合するファイルをコミットします。あなたはpullを行う場合に警告を取得し、または、その上にあなたの変更をコミット git commit -am "msg"
    • 、最終的には、原点にプッシュgit status
  • を行うことによって、自分でチェックします。 git push origin yourBranch

はまた、あなたの現在のブランチ(HEADが)yourBranchがそうでなければ、あなたがgit branchにより確認し、他の枝を修正する可能性があることを確認してください、それはあなたのブランチがアクティブ1であるであることを確認します。リモートyourBranchが誰かによってmasterブランチを引っ張っていないよう

限り、あなたはあなたのyourBranch

+0

実際にはリモートの「マスター」が転送されていますが、私のリモートブランチはローカル支店の後ろにあります –

+0

あなたの支店には影響しません。 masterブランチ、あなたがブランチのリモートにプッシュするとき –

0

masterから独立して動作することができるはず私はあなたのコードをプッシュするgit pushを使用していると思います。これにより、gitはリモートバージョンの背後にあるマスターブランチを含め、すべてのブランチをプッシュします。開発ブランチのみをプッシュするには、git push origin <branch name>または現在のブランチをプッシュするgit push origin HEADを使用します。

注:私はあなたのリモコンが「起源」と呼ばれると仮定しています。

0

ローカル変更をスタックに保存するには、git stashを実行します。

git stash 
git checkout master 
git stash pop /*or git apply (pop removes stash)*/ 

あなたの変更をマージし、それらを再度コミット:

git commit -am "msg" 
git push origin master 
関連する問題