質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.19%

githubでpull requestしたものが消える

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,321

shichiria

score 33

原因は私の理解が浅いせいなのだと思うのですが、
何故こうなったのかわからないので理由が推測出来る方は教えて下さい。

ある仕事用のリポジトリでmasterからブランチを作って(ブランチAとします)
修正を加えてマージ→pullrequest→master反映としたのですが、
その次に別の人がコミットしたファイルからは私の修正が消えていました。
その方がコミットする時に消しこむような修正をしたのかと思い、コミットログを見たのですが、
特に私が加えたファイルを消したようなログはありません。
元からコミットなどなかったかのような扱いになっています。
私のコミットログにはきちんとファイルは加えられており、
断面を見てもファイルは残っています。
今回は手動でもう一度ファイルを入れなおして終わったのですが、
またやってしまいそうで原因がわからず不安です。

ブランチA作成            マージ  他の方のコミット
→   ● →       …      → ● →  ● →
     ↓                     ↑  (以降私がコミットしたファイルなし)
     ↓ → → → →● → →  ↑
           ブランチAで修正      ブランチAで修正
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

  1. Aブランチで作業する(適宜ステージングする)
  2. Aブランチをコミットする

この状態なったらリモートにpushできますよね。
作業中、基本的にマージはしませんよ。

で、
リモートにpushしたということは、githubにも反映されます。
その反映されたpushされたコミットを、みんなに見てほしいわけです。
ようするにみんなにこのコミットをpullしてほしい。
なので、ここで初めてpull requestを出すということになります。

pull requestをみんながみて、問題ないと思ったら(ルールは現場によって違うけど、いいねを3つもらったら、とかいろいろ)そこで初めてマージします。

pull request前にマージしたのはなんでですかね?
(みんながそうしてたから、そうしろといわれたから、とかなんでもいいですよ)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/01 11:29

    小さなプロジェクトなのでPullRequestを出して取り込むのも自分でやっています。
    (修正を入れること自体は事前に全員に通知しています)
    gitの良さを生かしていないのはわかっていますが、メンバー間の利便性が優先されています。
    マージをしたのはconflictが発生したので、それを解消するために一旦masterの修正を取り込んだためです。その後、pullrequestを出して、承認ボタンを押しました。

    キャンセル

  • 2016/03/01 11:45

    小さいプロジェクトだとなかなかgitの良さが活かせない事ありますよねー。
    だいたいgitってコマンド多すぎるんですよwww

    閑話休題。

    これはあくまで想像なのですが、Aブランチを他の方が使った可能性はないですかね。
    その人はあなたの更新をpullして取り込まないままpushして、上書き合戦になってしまったと。

    キャンセル

+1

同じく勉強中のものです。

作業者の方は、修正更新後のmasterからローカルリポジトリを作成してますか。
もし、修正前のmasterからブランチを切って作業されているとしたらコミットしても古いデータとなってしまいます。

運用方法の全貌は見えませんが、下記のような感じで修正しないでしょうか。
1.(管理者)master更新、報知
2.(作業者)新masterをローカルのmasterにpull+マージ
3.(作業者)pullしたmasterと作業用のブランチAをマージ
4.(作業者)ブランチAにて作業を進める

以上でございます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/01 20:40

    今のプロジェクトだと数人なので管理者がいない状態で、
    小さい修正→直接マスターに、大きい修正→ブランチを切って修正、
    という程度しか決まっていません。
    なので自分の修正は自分でmasterへのマージ作業まで行っています。

    キャンセル

+1

お二方ご回答ありがとうございました。
あれから調べた結果、どうやら私ともうひと方が同じmasterのバージョンに対して、
修正コミットとしたのが問題だったようです。
同じバージョンに対してコミットしたので上書き扱いで私のものが消えたようです。
masterバージョン1→masterバージョン2(1ベース 私のブランチAからのコミット)→masterバージョン2’(1ベース 他の方のコミット)→(その後はバージョン2’が正となる)

先にコミットが入っている場合は、pullしないかぎり、pushできないものだと思っていたので、
混乱していました。
数人ですので、次からは、大きなコミットをする直前には、
きちんと宣言して、上書き合戦が起こらないように気をつけようと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/03/02 08:22

    push ではなく、push -f をされたということですね。pull して、既に push されている コミット と整合性をとらないと、このようなことが起きることがあります。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.19%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る