teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

解決方法の修正

2020/07/20 02:45

投稿

nelpesica
nelpesica

スコア159

title CHANGED
File without changes
body CHANGED
@@ -51,9 +51,9 @@
51
51
  ├[ProjectFolder]
52
52
  │└.git(cloneしたフォルダで上書き)
53
53
 
54
- 4. C:\Users[ProjectFolder]内の.gitフォルダ以外のファイルを削除
54
+ 4. C:\Users[ProjectFolder]内の.gitフォルダ以外のファイルをどこかに退避
55
- (.gitignoreファイルがあればそれは削除しない)
56
55
  5. SourceTreeでブランチをダブルクリックすると履歴が復活
56
+ 6. 退避したファイルを元に戻して上書き(コミットされていない差分が復活)
57
57
 
58
58
  以上の手順で消えたブランチを復活させることができました。
59
59
 

3

解決方法の追記

2020/07/20 02:45

投稿

nelpesica
nelpesica

スコア159

title CHANGED
File without changes
body CHANGED
@@ -25,4 +25,41 @@
25
25
  何もコミットされていない状態になっているのでmasterブランチも存在しません。
26
26
  他にも管理しているローカルリポジトリはありますが、ブランチが消えてしまったのは1件のみです。
27
27
 
28
- CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
28
+ CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
29
+
30
+ ### 解決方法
31
+ アドバイスをいただき無事に解決しましたので、解決手順をまとめました。
32
+ 対象のgitフォルダは`C:\Users[ProjectFolder].git`と仮定
33
+
34
+ 1. 念のためにリポジトリをどこかにバックアップ
35
+ C:\Users\
36
+ └[ProjectFolder]
37
+ │└.git(バックアップする)
38
+
39
+ 2. リポジトリをProjectFolderの同層へclone
40
+ コマンドプロンプトを起動 `Windowsキー + R` `cmdと入力`
41
+ カレントディレクトリを移動 `cd C:\Users[ProjectFolder]`
42
+ リポジトリをクローン `git clone C:\Users[ProjectFolder] newProjectFolder`
43
+ C:\Users\
44
+ ├[ProjectFolder]
45
+ │└.git(バックアップした)
46
+ ├newProjectFolder(新しく作った)
47
+ │└.git(cloneした)
48
+
49
+ 3. cloneした.gitフォルダをC:\Users[ProjectFolder].gitに上書き(コピペ)
50
+ C:\Users\
51
+ ├[ProjectFolder]
52
+ │└.git(cloneしたフォルダで上書き)
53
+
54
+ 4. C:\Users[ProjectFolder]内の.gitフォルダ以外のファイルを削除
55
+ (.gitignoreファイルがあればそれは削除しない)
56
+ 5. SourceTreeでブランチをダブルクリックすると履歴が復活
57
+
58
+ 以上の手順で消えたブランチを復活させることができました。
59
+
60
+ ### 補足:日本語(マルチバイト)名のブランチが表示されない場合
61
+ 1. `.git\logs\refs\heads`と`.git\refs\heads`にあるマルチバイトブランチファイル(以下、jpブランチ)をシングルバイトにリネーム
62
+ 2. `.git\logs`のHEADファイルの中身のjpブランチをリネームしたシングルバイト名に置換
63
+ 3. `.git\logs\refs\heads`のjpブランチファイルから最新のコミットID(一番下の行の左から2つ目のコードの塊)をコピー
64
+ 4. `.git\refs\heads`のjpブランチファイルにコピーしたコミットIDを貼り付けて保存
65
+ 5. SourceTreeでリポジトリを更新するとjpブランチが復活

2

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

2020/07/20 02:31

投稿

nelpesica
nelpesica

スコア159

title CHANGED
@@ -1,1 +1,1 @@
1
- SourceTreeのHistoryの復元方法
1
+ SourceTree(Git)ブランチの復元方法
body CHANGED
File without changes

1

質問で答えた内容を反映

2020/07/17 03:04

投稿

nelpesica
nelpesica

スコア159

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