2017-01-18 10 views
1

ここに何が起こったのですか: 「ボブ」がマスターに直接プッシュしたため、私が3回コミットしたことに気づいたとき、私のレポのマスターブランチで作業していました。 git rebaseから復旧しました

はこれを解決するために、私はミスを犯した。この時点で

git checkout -b secondary 
git push -u origin secondary 

を行うことによって、「二次」ブランチを作成し、私は二次へプル原点マスター(ボブパッチ)をgitのを忘れていました。私はgob rebaseを実行して、 "bob"によって行われた9つのコミットを削除し、git push -fを実行しました。結果:すべてのボブコミットは、両方のブランチから消えてしまった。

幸いにも、その失敗の直前に、私はそれがマスターの後ろにあった2番目のマシンを持っていました。私はgit pull後に2つのコミットを押していました。マージの競合が原因でプルに失敗し、リセットとgitフェッチを行い、ボブの問題を修正してからやると思っていました。そのマシンの現在のステータスは次のとおりです。

On branch master 
Your branch and 'origin/master' have diverged, 
and have 2 and 22 different commits each, respectively. 
    (use "git pull" to merge the remote branch into yours) 
nothing to commit, working directory clean 

私は以来、どのコマンドも実行していません。これらの22のコミットには "Bob"のコミットも含まれています。その古い「フェッチされた」データをマスター/セカンダリにもう一度得る方法はありますか?あなたのどちらもが、まだローカルにコミットをして、彼らは運では、彼らがいない場合は、それらを見つけて復元しようとするrefloghttps://git-scm.com/docs/git-reflog)を使用して、私が提案し、サーバー上にない場合

すべてのヘルプは

答えて

2

古いフェッチデータは、ローカルに保持されているrefs/remotesブランチにはまだ残ります。

git branch -aを実行すると、これらのリモコンとそのブランチがマシンに表示されます。その後、単にgit checkout -b <newbranchname> <remote>/<branch>と表示されます。

DWIMと一緒にDAG、refs、rtbなどについて「かなり沈んでいない」ことをすべて確認/更新するときです。git help revisionsgit help -gを参照してください。

-

RTBさん=リモート追跡ブランチ - リモコンのブランチ(のコピーを持っている)、通常は「読み取り専用」に保た追跡ローカルブランチ。

DWIM - 私は何を意味するのですか?だから、 'refs/heads/branch'の代わりにあなたのために 'ref/remotes/remote/branch'を得るでしょう。

1

を高く評価しましたまだガベージコレクションされています。

関連する問題