2017-05-14 3 views
1

GitワークスペースからGithubまでプッシュしようとしていましたが、追加されコミットされた変更はアップロードされていないようです。"(no branch)"になっていて、私の変更が失われたようです。

次に、「Gitのブランチ」をやって、私はこのように見えた何かを得た:愚か

git branch 
* (no branch) 
    master 

を、私は

git checkout master 

、今、私の変更は思えてマスターに戻ろうと考えていました行ってしまった。私のマスターブランチは3日ほど経っています。そしてこれに戻す方法はないようです(ブランチはありません)。

私は答えはチェックアウトが続くgit reflog showを行うことを提案し、この質問Git : seemed to be in “(no branch)” and then lost my changesをチェックします。私はそれを試してみましたが、私はこれを得た:

$ git reflog 
    0f27ae7 [email protected]{1}: checkout: moving from HEAD to master 
    7b8ee7b [email protected]{2}: commit: 14/05/2017 3:33pm 
    ff60409 [email protected]{3}: commit: 14/05/2017 3:33pm 
    0f27ae7 [email protected]{4}: checkout: moving from master to 0f27ae7236aabbe8cccfba82e201e36368a05054 
    0f27ae7 [email protected]{5}: commit: 11/05/2017 2:33pm 
    3e4c616 [email protected]{6}: merge origin/master: Fast-forward 
    1e79818 [email protected]{7}: commit: 10/5//2017 UI 

は私が0f27ae7236aabbe8cccfba82e201e36368a05054からチェックアウトを実行しようとしましたが、私の変更は戻っていませんでした。私が望むのは、私が最後に行ったコミットを復元することです(ブランチはありません)(コミット:14/05/2017 3:33 pm)。ここで

git branch -aの結果である:

$ git branch -a 
* (HEAD detached from 0f27ae7) 
    UI_linking 
    master 
    remotes/ado/newBranch 
    remotes/origin/UI_linking 
    remotes/origin/frogs1 
    remotes/origin/master 
    remotes/origin/newBranch 
    remotes/origin/newMas 

は、失われた私の変化はありますか?または、それらを回復する方法はありますか?

+0

git branch -aを表示できますか? – DreamInBox

+0

私はそれを質問に加えました。 –

答えて

0

git checkout 7b8ee7bの状態を復元することができます。7b8ee7bは、reflogの[email protected]{2}の下のハッシュです。マスターに切り替える前のものです。あなたには、いくつかの理由で0f27ae7236aabbe8cccfba82e201e36368a05054にmasterブランチから切り替えると「デタッチヘッド」状態で終わった:何が起こった

。あなたはいくつかのコミットをしましたが、それらはどのブランチにもありませんでした。これらのコミットはまだ存在しており、それらをreflogで見ることができます。

0f27ae7236aabbe8cccfba82e201e36368a05054はあなたがハッシュするために切り替えたとき、あなたはそのコミットを指す任意のブランチに切り替えていないためにどのようなご主人のポイントですが。

0

git reflogの出力から、あなたの変更はコミット7b8ee7b[email protected]{2})であると言います。

次のコマンドを実行します。

git branch lost 7b8ee7b 
git checkout lost 

はそれをチェックアウトし、その後コミット前述した上で(lostという名前の)新しいブランチを作成する必要があります。

次に、あなたが行うことができます。

git rebase master 
git checkout master 
git merge --ff lost 

をあなたはmaster枝の上に回復2つのコミットを移動し、それらをmaster分岐履歴の一部として見せること。

すべてがよさそうなら、あなたはlostブランチを削除するにはgit branch -d lostを実行することができます。

0

理由は次のとおりです。いくつかの警告を通知するブランチにブランチをプッシュしましたが、無視しました。今、このコードはHEADに切り離されています。したがって、あなたの新しい修正コードはHEAD〜にあります。あなたは、再度ログインして見ることができます:

0f27ae7ヘッド@ {4}:チェックアウト:0f27ae7236aabbe8cccfba82e201e36368a05054にマスターから移動

それを取り戻すための方法:

  1. あなたのgitのをフェッチソース:

gitが起源

を取得します
  • アウトが
  • Gitのチェックアウトリモコンをヘッドに

      /原点/マスター

  • 最後に、マージ
      0f27ae7 HEAD @ {1}をマスタにする

    git merge HEAD @ {1}

    これで、マスターにコードが追加されました。

    よろしくお願いします。

  • 関連する問題