2016-11-22 7 views
0

Gitを使用してバージョンコントロールを管理するPython/Djangoプロジェクトに取り組んでいます。Gitローカルマスタブランチが壊れているようです

ライブサーバーでは、Webサイトは現在正常に動作していますが、ローカルコピーのviewsのレイアウト/プレゼンテーションをいくつか変更しました。

これを行うには、ローカルのマスターブランチがライブバージョンで最新の状態になったときに、pipelineProjectという名前の新しいブランチを作成し、そのブランチで作業を開始しました。 pipelineProjectを変更している間、私は変更の過程でウェブサイトを壊し、その支店を数回マスターの状態に戻す必要がありました。

私は今、変化が私は私の働いてpipelineProject分岐がバックアップされることを保証するために、私はgit add -Agit commit -m 'message'を実行したcorrectly-作品を作りたかったの状態に私のpipelineProject枝を持っています。私は明らかにmasterと私の変更をマージしたいと

はしかし、pipelineProjectをバックアップした後、私はその後、masterをチェックアウトし、私の変更をマージする前に、私はしばらくの間masterたブランチ上ではなく、一部のブラウザでは私のウェブサイトをロードしようとしましたこれは現在壊れている理由は...ウェブサイトが読み込まれても、すべてのスタイリングが消えてしまい、そのページで使用されているHTML要素の一覧が表示されます(ハイパーリンク、コードからは&のいくつかの変数名)

ウェブサイトのライブバージョンは、私がこれらの変更作業を開始する前の状態と同じ働きをしているので、ローカルのmasterブランチに切り替えてみました。 git pull origin masterを送信して、ローカルのmasterコピーを現在サーバー上で実行されているコピーで更新します。私はこれをしたとき

は、gitがというメッセージが表示される:

これは私の地元のマスターがアップ...でされている場合、なぜ私は理解していないすでに最新の

今のところ、ライブサーバー上で正しくWebサイトを表示できないのですが、ローカルサーバーで表示すると正しく表示されません...?

私は私のpipelineProjectブランチでローカルにウェブサイトを表示すると、それはすべて正常に動作する(と予想されるように、私が行った変更が表示されている)が、私は場合には、私の地元のmasterブランチに私のpipelineProjectブランチをマージする必要はありません私は成功した変更を失う。

liveマスタが正常に動作しても、私のローカルmasterが壊れているのはなぜですか?変更をライブサーバーに適用する前に、これを修正するにはどうすればよいですか?

編集

だけの思考:私のpipelineProject分岐が正常に機能しているようだから、私はこの1つで私の地元のマスターブランチを交換し、サーバーにそれをプッシュするだろうか?

私の地元の師匠は、生きている人が働いているときに生きている人と最新であっても壊れてしまう理由はありますか?

+0

バージョン管理に含まれていないものは変更しましたか? collectstaticコマンドを呼び出さずに名前を変更したcss/jsファイルのように。同じジャンゴの設定をローカルにローカルに生存させていますか? – schwobaseggl

答えて

1

にプッシュは:

  1. はい、あなたはpipelineProjectブランチとマスターブランチを置き換えることができます。まずあなたは、pipelineProject枝が原点/マスターを追跡するために作るgit checkout pipelineProjectgit branch pipelineProject -u origin/masterを使用し、ローカルのmasterブランチgit branch –D masterを削除する必要があり、最終的にはgit branch -m pipelineProject master
  2. をマスターするpipelineProjectの名前を変更するはい、それの理由があります。これは、ローカルのマスターブランチがリモートのための起点/マスターブランチより先にあることに起因します(git statusを使用してチェックできます)。起点/マスターの前にあるコミットを表示するには、git log origin/master..masterを使用します。あなたの状況では、 "壊れた"コミットを取り除く必要があります。git reset --hard <commit id which you want go back>を使用することができます(マスターブランチを削除したくない場合)
0
  1. 、ローカル&リモートマスターがであることを確認してください同じコミット-SHA
    $ git checkout pipelineProject # go to your pipelineProject branch
    $ git branch -D master # delete the local master branch

    が次にオンラインに行くと、マスターの最後のコミットのSHAコピー
    $ git checkout paste-commit-sha-here # go to the remote master's last commit
    $ git checkout -b master # create & checkout local master branch

  2. 交換CAL pipelineProjectとマスターとサーバーご質問について

    $ git checkout pipelineProject # go to your pipelineProject branch
    $ git branch -D master # delete the local master branch
    $ git checkout -b master # create & checkout new local master
    $ git push -f origin master # push to server forcely

関連する問題