2017-01-31 7 views
1

これはこれまであなたに起こったことはありますか?GitHub解決の衝突コミット履歴が失われました

開発チームは最近、GitLabを使用する代わりに、コードベース&をGitHubに移行しました。次のように当社の支店の設定は次のとおりです。

  1. マスター
  2. 個々のブランチ1 [この質問の支社と呼ばれる]
  3. 開発
  4. をステージング
  5. 個々のブランチ2 [このためBRANCH2と呼ばれます質問]
  6. 個々の支店3 [この質問の分岐3と呼ばれる]
  7. など...

ブランチ1では開発を完了しましたが、開発ブランチからブランチにマージしてから、開発に統合しました。彼はマージの競合があることを知ったので、私はGitHubのConolicts Resolveボタンを使いました。これは、紛争のための便利なWebツールに私を送りました...ここに表示https://help.github.com/articles/resolving-a-merge-conflict-on-github/)。衝突が起こった後、彼はbranch1からDevelopmentにプルリクエストを開き、マージする前にレビューを受けました。私たちは、手作業によるマージの競合がなくなる前の彼のコミットの履歴とコードの変更がすべて終わったことに気付きましたが、彼の変更を確認する方法はありませんでした。見知らぬ人は、彼のコードが既にDevelopmentに統合されているようだが、これが起こった経歴はないので、どうなったのかわからない。

branch2と同様の状況がありました。開発からbranch2へのマージ時に競合が発生し、GitHub上でマージツールを使用し、コミットのすべての履歴とコードの変更はなくなりました。しかし、コードのどれも誤って開発に統合されていませんでした。

branch3でもマージ競合が発生しましたが、これらの競合を解決するためにコマンドライン(GitBash)を使用し、開発にマージする準備ができた時点でコミット履歴はまだ存在していました。

私たちがbranch1とbranch2で持っていた問題は、GitHubによるマージツールと関係がありますか? Googleはあなたがマージし、要求を引いたときの手順によって引き起こされています。..

感謝:)

答えて

1

過度に有用ではなかったです。 引き出し要求(PR)は、先行する必要があります。。 PRの目的は、実際に実行される前に他の人にマージをレビューさせることです。 branch1を開発ブランチにマージする場合は、開発ブランチと比較ブランチに基づいてプルリクエストを作成できます。 PRが承認された後、branch1はDevelopmentブランチにマージされます。

開発からbranch1へのステップマージは不要です。または、開発とbranch1をマージすると有害です。私たちは、グラフの下にすることによって説明することができます

A---B---C  branch1 
    \ 
     D---E  Development 

マージ開発後に開発ブランチにマージブランチ1の後

A---B---C---F branch1 
    \ /
     D---E  Development 

をBRANCH1し、それが唯一のブランチ1を引き起こし、コミットするポイントを開発します。早送りマージです。

A---B---C---F branch1, Development 
    \ /
     D---E  

だから、あなたが唯一の開発ブランチに支社をマージする必要があり、グラフは前worongly(別途commitCおよびE)マージの状態にあなたの支社開発回復に

A---B---D---E--- F’  branch1 
    \  /
     ----C----  Development 

する必要があり、あなたはコマンドの必要性:

git checkout branch1 
git reset --hard <commit id for C> 
git checkout Development 
git reset --hard <commit id for E> 
+0

ありがとうございます!他の開発者に伝えます! :) – AisRuss

関連する問題