質問編集履歴

4

解決方法の修正

2020/07/20 02:45

投稿

nelpesica
nelpesica

スコア159

test CHANGED
File without changes
test CHANGED
@@ -104,11 +104,11 @@
104
104
 
105
105
 
106
106
 
107
- 4. C:\Users[ProjectFolder]内の.gitフォルダ以外のファイルを削除
107
+ 4. C:\Users[ProjectFolder]内の.gitフォルダ以外のファイルをどこかに退避
108
-
109
- (.gitignoreファイルがあればそれは削除しない)
110
108
 
111
109
  5. SourceTreeでブランチをダブルクリックすると履歴が復活
110
+
111
+ 6. 退避したファイルを元に戻して上書き(コミットされていない差分が復活)
112
112
 
113
113
 
114
114
 

3

解決方法の追記

2020/07/20 02:45

投稿

nelpesica
nelpesica

スコア159

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,77 @@
53
53
 
54
54
 
55
55
  CLIは苦手なので、コマンドプロンプトを使った操作方法であれば、わかりやすく解説(またはコピペで済む方法で)していただけると助かります。
56
+
57
+
58
+
59
+ ### 解決方法
60
+
61
+ アドバイスをいただき無事に解決しましたので、解決手順をまとめました。
62
+
63
+ 対象のgitフォルダは`C:\Users[ProjectFolder].git`と仮定
64
+
65
+
66
+
67
+ 1. 念のためにリポジトリをどこかにバックアップ
68
+
69
+ C:\Users\
70
+
71
+ └[ProjectFolder]
72
+
73
+ │└.git(バックアップする)
74
+
75
+
76
+
77
+ 2. リポジトリをProjectFolderの同層へclone
78
+
79
+ コマンドプロンプトを起動 `Windowsキー + R` `cmdと入力`
80
+
81
+ カレントディレクトリを移動 `cd C:\Users[ProjectFolder]`
82
+
83
+ リポジトリをクローン `git clone C:\Users[ProjectFolder] newProjectFolder`
84
+
85
+ C:\Users\
86
+
87
+ ├[ProjectFolder]
88
+
89
+ │└.git(バックアップした)
90
+
91
+ ├newProjectFolder(新しく作った)
92
+
93
+ │└.git(cloneした)
94
+
95
+
96
+
97
+ 3. cloneした.gitフォルダをC:\Users[ProjectFolder].gitに上書き(コピペ)
98
+
99
+ C:\Users\
100
+
101
+ ├[ProjectFolder]
102
+
103
+ │└.git(cloneしたフォルダで上書き)
104
+
105
+
106
+
107
+ 4. C:\Users[ProjectFolder]内の.gitフォルダ以外のファイルを削除
108
+
109
+ (.gitignoreファイルがあればそれは削除しない)
110
+
111
+ 5. SourceTreeでブランチをダブルクリックすると履歴が復活
112
+
113
+
114
+
115
+ 以上の手順で消えたブランチを復活させることができました。
116
+
117
+
118
+
119
+ ### 補足:日本語(マルチバイト)名のブランチが表示されない場合
120
+
121
+ 1. `.git\logs\refs\heads`と`.git\refs\heads`にあるマルチバイトブランチファイル(以下、jpブランチ)をシングルバイトにリネーム
122
+
123
+ 2. `.git\logs`のHEADファイルの中身のjpブランチをリネームしたシングルバイト名に置換
124
+
125
+ 3. `.git\logs\refs\heads`のjpブランチファイルから最新のコミットID(一番下の行の左から2つ目のコードの塊)をコピー
126
+
127
+ 4. `.git\refs\heads`のjpブランチファイルにコピーしたコミットIDを貼り付けて保存
128
+
129
+ 5. SourceTreeでリポジトリを更新するとjpブランチが復活

2

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

2020/07/20 02:31

投稿

nelpesica
nelpesica

スコア159

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

1

質問で答えた内容を反映

2020/07/17 03:04

投稿

nelpesica
nelpesica

スコア159

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