2017-11-29 19 views
-3

gitを使って助けが必要です。現在のgit masterブランチを保存し、後で最初のコミットにリセットします

私はこのミスをして、マスターブランチのすべての作業を行いました。

  1. 保存別のブランチでマスターブランチの現在の状態(例えば、まだ既存のブランチのバックアップ): はそれでいくつかの問題のために私は次の操作を行いたいです。
  2. 初期にmasterブランチをリセット

をコミット私はあなたの誰かが私を助けるかもしれない、まだ をこの問題のいずれかの解決策を見つけられませんでしたか?ベストに関しては

+4

[Gitリポジトリを以前のコミットに戻すにはどうすればいいですか?](https://stackoverflow.com/questions/4114095/how-to-revert-git-repository-to-a-previous-commit) –

答えて

0

まず、あなたは初期のハッシュを見つける必要がありコミット:

git log --all --grep='initial commit' 

は、次にバックアップブランチを作成します。

git checkout -b backup 

最後に、masterブランチに戻ってにリセット初期コミット:

git checkout master 
git reset --hard <HASH> 
+0

ありがとう、私はちょうど新しい支店を作成する必要があるか分からなかった。 -bは何を意味しますか? – dreichen

+0

@DavidReichenbach yep! –

+0

@DavidReichenbach: '-b'はチェックアウトに新しいブランチを作成するよう指示します。とにかく新しいブランチに切り替える必要がないので、代わりに 'git checkout -b'の代わりに' git branch'コマンドを使うことです –

0

backupブランチを作成します。

git checkout master 
git branch backup 

あなたはmasterに元のコミットの一つ以上を維持したい場合は、あなただけのコミット以前にmaster枝を移動するためにresetを使用することができます。ターゲットコミットの名前が必要です。これはコミットIDである可能性があります。あるいは、例えばmasterブランチの現在のチップでコミットの前にコミットが5回コミットしていることがわかっている場合は、master~5と言うことができます。

git checkout --detach 
git branch -D master 
git checkout --orphan master 

これはへmasterを元に戻すします:名前はあなたがmasterは、既存のコミットのいずれかを保持しない場合は、代わりにあなたがこれを行うことができ

git reset --hard T 

を言うTた場合"未成年"の枝の状態、そしてあなたの次のコミットは新しい歴史を始めるでしょう。作業ツリーとインデックスにはまだbackupブランチの状態が含まれている可能性があるので、コミットする前にどのようにインデックスを探しているかを確認してください。

関連する問題