2016-05-19 21 views
3

私は誤って私のgit repoを孤立した枝としてチェックアウトしました。このコマンドを元に戻す方法はありますか?私はコミットをしていない、あるいは他の方法でレポを変更したことはありません。元に戻すgit checkout --orphan

+0

ただ、チェックアウトあなたが正常に削除するには、以下の回答後 – Thorin

+0

がそうであるようにブランチローカル:gitブランチ-D imranal

答えて

3

をコミットまたはコミット)、私はそれを開始したはずの現在のブランチにリセットします:

# check that your current branch is the orphan one 
git branch 

git reset <anExistingBranch> 
# or 
git checkout -B <anExistingBranch> 

nから実行されるコミットew支店、頭部は<anExistingBranch>から親として。
これはあなたの孤立した支店を「孤立させない」でしょう。通常のブランチに

(既存のブランチ上のgit checkout --orphanは「fatal: A branch named 'xxx' already existsを」働かないので、私は、これは新しいブランチ程度であると仮定)

+0

本当に質問に答えません。問題は、私と私の答えであるコマンドを元に戻す方法でした。ただ簡単なチェックアウトです。 ;-) – Vampire

+0

@Vampire既存のブランチ上で 'git checkout --orphan'を呼び出すと動作しません" fatal: 'xxx'というブランチが既に存在します。だからこそ、私は新しいブランチについて話していると仮定していました。ブランチが作成されたら、単純なチェックアウトでは何も変わりません。 HEADを移動するには、リセット(または 'git checkout -B')が必要です。 – VonC

+0

いいえ、あなたが 'git checkout -orphan foo && git checkout master'を実行すると、前と全く同じ状態になります。孤児のチェックアウトは実際にブランチを作成しませんが、ブランチが指すことができるチェックインはまだありません。 'git init && git checkout -b foo && git addと同じくらい同じです。 && git commit -m foo'を実行すると、 'foo'というブランチと' master'ブランチがなくなります。最初のコミットだけが実際にブランチを作成するからです。 – Vampire

2

通常のチェックアウトを行うブランチをチェックアウトするだけです。

+0

私の未追跡ファイルが上書きされてしまうということはありません、 'git checkout -f master'が動作します(強制) – BrunoLM

+0

上書きされたファイルそれは正常な動作です。また、通常のブランチ間で切り替える場合。それはこの問題の状況に特有ではない。 – Vampire

-1

のgit REFLOG -3 & &エコーは、{1} & &をチェックアウトするエコーあなたのコミット前の

gitのチェックアウトヘッド@を参照してください、あなたの前のブランチがどの親なし(作成されているので

関連する問題