質問編集履歴

4 解決方法の修正

nelpesica

nelpesica score 151

2020/07/20 11:45  投稿

SourceTree(Git)のブランチの復元方法
### 前提・実現したいこと
SourceTreeで管理しているローカルリポジトリのブランチ(History)がすべて消えていました。
故意に削除したわけではなく、ソフトを立ち上げたらブランチが消えていて管理していたファイルがすべてステージされた状態でした。
ブランチを復元する方法はありますか?
### 試したこと
ブランチが消えた原因としてPCがブルースクリーンで落ちたことが考えられました。
最新の復元ポイントに復元しましたがSourceTreeの設定などは戻りませんでした。
リポジトリの再読み込みもしてみましたが、ブランチは消えたままでした。
### 補足情報
Windows 10 pro 64bit
SourceTree Ver3.3.8
内蔵Gitバージョン 2.24.1
リポジトリの管理はローカルのみです。
gitフォルダの中には管理していたログ(ブランチ)と思われるファイルなどが残っているようです。
 .git\logs\refs\heads\master
 .git\refs\heads\master
など
現状、『新規リポジトリ作成をした状態』とほぼ同じですが、退避させていたスタッシュ情報だけは残っています。
何もコミットされていない状態になっているのでmasterブランチも存在しません。
他にも管理しているローカルリポジトリはありますが、ブランチが消えてしまったのは1件のみです。
CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
### 解決方法
アドバイスをいただき無事に解決しましたので、解決手順をまとめました。
対象のgitフォルダは`C:\Users\[ProjectFolder]\.git`と仮定
1. 念のためにリポジトリをどこかにバックアップ
C:\Users\
└[ProjectFolder]
│└.git(バックアップする)
2. リポジトリをProjectFolderの同層へclone
コマンドプロンプトを起動 `Windowsキー + R` `cmdと入力`
カレントディレクトリを移動 `cd C:\Users\[ProjectFolder]`
リポジトリをクローン `git clone C:\Users\[ProjectFolder] newProjectFolder`
C:\Users\
├[ProjectFolder]
│└.git(バックアップした)
├newProjectFolder(新しく作った)
│└.git(cloneした)
3. cloneした.gitフォルダをC:\Users\[ProjectFolder]\.gitに上書き(コピペ)
C:\Users\
├[ProjectFolder]
│└.git(cloneしたフォルダで上書き)
4. C:\Users\[ProjectFolder]内の.gitフォルダ以外のファイルを削除
(.gitignoreファイルがあればそれは削除しない)
4. C:\Users\[ProjectFolder]内の.gitフォルダ以外のファイルをどこかに退避
5. SourceTreeでブランチをダブルクリックすると履歴が復活
6. 退避したファイルを元に戻して上書き(コミットされていない差分が復活)  
以上の手順で消えたブランチを復活させることができました。
### 補足:日本語(マルチバイト)名のブランチが表示されない場合
1. `.git\logs\refs\heads`と`.git\refs\heads`にあるマルチバイトブランチファイル(以下、jpブランチ)をシングルバイトにリネーム
2. `.git\logs`のHEADファイルの中身のjpブランチをリネームしたシングルバイト名に置換
3. `.git\logs\refs\heads`のjpブランチファイルから最新のコミットID(一番下の行の左から2つ目のコードの塊)をコピー
4. `.git\refs\heads`のjpブランチファイルにコピーしたコミットIDを貼り付けて保存
5. SourceTreeでリポジトリを更新するとjpブランチが復活
  • GitHub

    2394 questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

  • Git

    2976 questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • SourceTree

    306 questions

    SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

3 解決方法の追記

nelpesica

nelpesica score 151

2020/07/20 11:31  投稿

SourceTree(Git)のブランチの復元方法
### 前提・実現したいこと
SourceTreeで管理しているローカルリポジトリのブランチ(History)がすべて消えていました。
故意に削除したわけではなく、ソフトを立ち上げたらブランチが消えていて管理していたファイルがすべてステージされた状態でした。
ブランチを復元する方法はありますか?
### 試したこと
ブランチが消えた原因としてPCがブルースクリーンで落ちたことが考えられました。
最新の復元ポイントに復元しましたがSourceTreeの設定などは戻りませんでした。
リポジトリの再読み込みもしてみましたが、ブランチは消えたままでした。
### 補足情報
Windows 10 pro 64bit
SourceTree Ver3.3.8
内蔵Gitバージョン 2.24.1
リポジトリの管理はローカルのみです。
gitフォルダの中には管理していたログ(ブランチ)と思われるファイルなどが残っているようです。
 .git\logs\refs\heads\master
 .git\refs\heads\master
など
現状、『新規リポジトリ作成をした状態』とほぼ同じですが、退避させていたスタッシュ情報だけは残っています。
何もコミットされていない状態になっているのでmasterブランチも存在しません。
他にも管理しているローカルリポジトリはありますが、ブランチが消えてしまったのは1件のみです。
CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
### 解決方法
アドバイスをいただき無事に解決しましたので、解決手順をまとめました。
対象のgitフォルダは`C:\Users\[ProjectFolder]\.git`と仮定
1. 念のためにリポジトリをどこかにバックアップ
C:\Users\
└[ProjectFolder]
│└.git(バックアップする)
2. リポジトリをProjectFolderの同層へclone
コマンドプロンプトを起動 `Windowsキー + R` `cmdと入力`
カレントディレクトリを移動 `cd C:\Users\[ProjectFolder]`
リポジトリをクローン `git clone C:\Users\[ProjectFolder] newProjectFolder`
C:\Users\
├[ProjectFolder]
│└.git(バックアップした)
├newProjectFolder(新しく作った)
│└.git(cloneした)
3. cloneした.gitフォルダをC:\Users\[ProjectFolder]\.gitに上書き(コピペ)
C:\Users\
├[ProjectFolder]
│└.git(cloneしたフォルダで上書き)
4. C:\Users\[ProjectFolder]内の.gitフォルダ以外のファイルを削除
(.gitignoreファイルがあればそれは削除しない)
5. SourceTreeでブランチをダブルクリックすると履歴が復活
以上の手順で消えたブランチを復活させることができました。
### 補足:日本語(マルチバイト)名のブランチが表示されない場合
1. `.git\logs\refs\heads`と`.git\refs\heads`にあるマルチバイトブランチファイル(以下、jpブランチ)をシングルバイトにリネーム
2. `.git\logs`のHEADファイルの中身のjpブランチをリネームしたシングルバイト名に置換
3. `.git\logs\refs\heads`のjpブランチファイルから最新のコミットID(一番下の行の左から2つ目のコードの塊)をコピー
4. `.git\refs\heads`のjpブランチファイルにコピーしたコミットIDを貼り付けて保存
5. SourceTreeでリポジトリを更新するとjpブランチが復活
  • GitHub

    2394 questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

  • Git

    2976 questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • SourceTree

    306 questions

    SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

2 わかりやすいタイトルに変更

nelpesica

nelpesica score 151

2020/07/17 12:04  投稿

SourceTreeのHistoryの復元方法
SourceTree(Git)のブランチの復元方法
### 前提・実現したいこと
SourceTreeで管理しているローカルリポジトリのブランチ(History)がすべて消えていました。
故意に削除したわけではなく、ソフトを立ち上げたらブランチが消えていて管理していたファイルがすべてステージされた状態でした。
ブランチを復元する方法はありますか?
### 試したこと
ブランチが消えた原因としてPCがブルースクリーンで落ちたことが考えられました。
最新の復元ポイントに復元しましたがSourceTreeの設定などは戻りませんでした。
リポジトリの再読み込みもしてみましたが、ブランチは消えたままでした。
### 補足情報
Windows 10 pro 64bit
SourceTree Ver3.3.8
内蔵Gitバージョン 2.24.1
リポジトリの管理はローカルのみです。
gitフォルダの中には管理していたログ(ブランチ)と思われるファイルなどが残っているようです。
 .git\logs\refs\heads\master
 .git\refs\heads\master
など
現状、『新規リポジトリ作成をした状態』とほぼ同じですが、退避させていたスタッシュ情報だけは残っています。
何もコミットされていない状態になっているのでmasterブランチも存在しません。
他にも管理しているローカルリポジトリはありますが、ブランチが消えてしまったのは1件のみです。
CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
  • Git

    2976 questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • SourceTree

    306 questions

    SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

  • GitHub

    2394 questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

1 質問で答えた内容を反映

nelpesica

nelpesica score 151

2020/07/17 11:49  投稿

SourceTreeのHistoryの復元方法
### 前提・実現したいこと
SourceTreeで管理しているローカルリポジトリのHistory(ブランチ?)がすべて消えていました。
故意に削除したわけではなく、ソフトを立ち上げたらHistoryが消えていて管理していたファイルがすべてステージされた状態でした。
SourceTreeで管理しているローカルリポジトリのブランチ(History)がすべて消えていました。
故意に削除したわけではなく、ソフトを立ち上げたらブランチが消えていて管理していたファイルがすべてステージされた状態でした。
Historyを復元する方法はありますか?
ブランチを復元する方法はありますか?
### 試したこと
Historyが消えた原因としてPCがブルースクリーンで落ちたことが考えられました。
ブランチが消えた原因としてPCがブルースクリーンで落ちたことが考えられました。
最新の復元ポイントに復元しましたがSourceTreeの設定などは戻りませんでした。
リポジトリの再読み込みもしてみましたが、Historyは消えたままでした。
リポジトリの再読み込みもしてみましたが、ブランチは消えたままでした。
### 補足情報
Windows 10 pro 64bit
SourceTree Ver3.3.8
内蔵Gitバージョン 2.24.1
リポジトリの管理はローカルのみです。
gitフォルダの中には管理していたログと思われるファイルなどが残っているようです。
.git\logs\refs\heads\master
.git\refs\heads\master
gitフォルダの中には管理していたログ(ブランチ)と思われるファイルなどが残っているようです。
 .git\logs\refs\heads\master
 .git\refs\heads\master
など
また、スタッシュの中身は残っていました。
現状、『新規リポジトリ作成をした状態』とほぼ同じですが、退避させていたスタッシュ情報だけは残っています。
何もコミットされていない状態になっているのでmasterブランチも存在しません。
他にも管理しているローカルリポジトリはありますが、ブランチが消えてしまったのは1件のみです。
CLIは苦手なので、コマンドプロンプトを使った復元方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
  • Git

    2976 questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • SourceTree

    306 questions

    SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る