最初はメインのメインブランチから分岐した2つの独立した開発ブランチの作業を終了しました。だから、もともと私はMaster
から分岐してDevelopBranch1
を作成Git 2つの開発ブランチ間のマージと補完
Master
|--> DevelopBranch1
|
-->DevelopBranch2
:ここで私はこれらの2枝を開発作成するために、マスター支店の分岐に使用される流れがあります。その後、私はを作り、DevelopBranch1
から分岐しました。この決定の背後にある理由は、DevelopBranch2
がDevelopBranch1
の新しい変更に依存していたためです。
DevelopBranch1
への変更が完了しました。 DevelopBranch2
はもともとMaster
の分岐していないので、私は今、いくつかのことをしたい:
1))Master
3にMaster
2)親の変更DevelopBranch2
にDevelopBranch1
をマージMaster
DevelopBranch2
をマージ
4)アーカイブDevelopBranch1
I DevelopBranch1
をMaster
にマージすると成功しましたSourceTreeMaster
をチェックアウトし、最新のコミットでDevelopBranch1
からマージすることで成功しました。
私がステップ2に行ったとき、これが問題に遭遇しました。私は親の変更に次のgitコマンドを使用:
git checkout master
git rebase --onto DevelopBranch2
をリベースコマンドの後、私は、最新のMaster
からコミットがDevelopBranch2
内コミット最新に移動してしまったことをSourceTree以内に気づきました。
この時点で、Master
をDevelopBranch2
にマージしようとしました。このマージを使用してgit status
を実行した後、私はその後、git pull
を走った次のメッセージ
On branch master
Your branch and 'origin/master' have diverged,
and have 5 and 7 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
を持って、このメッセージが表示されました:私は現在、こだわっているところ
git pull
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
これがあります。
ご協力いただければ幸いです!
非常に古いGit(例:1.7.x)を使用していない限り、 'git status'の出力とその後のマージされていないファイルに関する苦情は正しく混合されていないようです。このような古代人のGitを持っていれば、これはすべて意味があります。 – torek
@torekこの変更を元に戻すには、git reset --hard masterを使用してください。https://stackoverflow.com/questions/2452226/master-branch-and-origin-master-have- diverged-how-to-undiverge-branches私は、問題を解決するために 'git rebase'を正しく使用していると思います。 –
一般的に、 'git reset -hard'には非常に注意が必要です。私はちょうど求めているべきことである:*あなたが実行しているのGitのバージョン* – torek