2012-09-13 7 views
6

「Gitのプッシュ-f」私はHerokuのにプッシュしようとした後(以下コピー)このエラーメッセージが表示されました。私は最初にFacebookのキャンバスアプリを設定し、herokuオプションでホスティングを選択しました。それは私が私が私のマシン上でHerokuの:どのように「gitのプル」にした後

heroku git:remote -a desolate-springs-1684 

を開発したアプリのリモートとして追加HerokuのURLを、与えた。しかし、私は押されたときに、私はこのエラーに

error: failed to push some refs to '[email protected]:desolate-springs-1684.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. 
localhost:nhl michaelmitchell$ 

を得ましたので、私は

をしました
git push -f heroku master 

しかし、今、私は明らかに「gitのプル」を行う必要があります。しかし、私は 'git pull'の後に何を入れますか?ヒロクのURLの名前?または、他の何か?

答えて

18

git pushを強制することは、作業コピーにあなたや他の協力者が行ったコミットを失ったためにはお勧めできませんでした。

プッシュする前に、マージしたり、ローカルの作業コピーに上流の変更をリベースのいずれかを持っている必要があります。 、ところでローカル

$ git pull --rebase heroku master 
$ git push heroku master 

を変更をリベースするには、ローカル

$ git pull heroku master 
$ git push heroku master 

を変更をマージし

今、あなたの変更をプッシュしていることを、あなたは実際には何もする必要はありません。リモートリポジトリにはすでにすべての変更が含まれています。

$ git statusコマンドは時代遅れの参照を返している何らかの理由場合は、単純にすべてのリモートの変更を取得するために

$ git pull heroku 

を実行します。あなたはターゲットブランチを指定する(またはあなたが追跡ブランチが有効になっている)場合を除き、git pullは、単に上流の変更をダウンロード(およびマージしない)となりますのでご注意ください。

はまた、Herokuのは、Gitのホスティングとみなされるべきではないことに注意してください。これは、Herokuからgit pullを実行することは非常に珍しいことを意味します。代わりに、あなたはあなたのリポジトリを格納し、唯一のアプリケーションをデプロイするHerokuのにプッシュを実行するために(たとえば、GitHubのかのBitbucketなど)Gitのホスティングを使用する必要があります。

1

このエラーは基本的には、レポにプッシュしようとしているコードよりも新しいコードがあることを意味します。

あなたはすべてのgitコマンドに慣れていない場合は、私は、プルを行い、独自の作業リポジトリを更新後、再度押すか、単にプッシュ側の注意点として

git pull heroku master 

を強制する必要GUIを使用することをお勧めします.GUIを使用すると、プロセス全体が圧倒的に少なくなる可能性があります。

ここにはたくさんの偉大なクライアントがいます:http://git-scm.com/downloads/guis

関連する問題