回答編集履歴
1
git branch -avv の説明を追加
answer
CHANGED
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
これらがほとんど同じなら、どちらの枝分かれを採用しても良いと思われます。
|
72
72
|
|
73
|
-
ここで、現在の master があるブランチ (b3c1ea4, 6b32b95) を不採用にして、origin/master 側 (f8e15a5, d80cf26) を採用するとしましょう。以下の
|
73
|
+
ここで、現在の master があるブランチ (b3c1ea4, 6b32b95) を不採用にして、origin/master 側 (f8e15a5, d80cf26) を採用するとしましょう。例えば以下のようにします。(git は同じ結果になる方法が複数あるので、これは一例です。)
|
74
74
|
|
75
75
|
```
|
76
76
|
$ git checkout master
|
@@ -94,11 +94,28 @@
|
|
94
94
|
|
95
95
|
```
|
96
96
|
|
97
|
-
|
97
|
+
git merge は枝分かれした二つのブランチの変更内容をマージするのが本来の使い方ですが、枝分かれしてない場合に先行しているブランチに追いつくためにも使えます。その際、間違って新たにマージコミットを作らないように `--ff-only` オプションをつけています。
|
98
98
|
(すでに状況が変わってるようですが、基本的な考え方がわかれば応用できると思います。)
|
99
99
|
|
100
100
|
別の方法としては、master ブランチを一旦消して新たな位置に作り直したり、master ブランチを別の名前にして、別のブランチの名前を master に変更こともできますが、危険な香りがする(実際はそれほど危険ではありませんが)ので今回はやめておきます。
|
101
101
|
|
102
102
|
---
|
103
103
|
|
104
|
-
また、git branch
|
104
|
+
また、git branch でブランチを一覧表示できます。自分はよく `-avv` オプションをつけます。
|
105
|
+
|
106
|
+
```
|
107
|
+
$ git branch -avv
|
108
|
+
* filling-in-layout b3c1ea4 Add a full_title helper
|
109
|
+
filling-in-leyout d80cf26 Finish layout and routes
|
110
|
+
filling-in-re-layout 6b32b95 Finish layout and routes
|
111
|
+
master b3c1ea4 [origin/master: ahead 1, behind 1] Add a full_title helper
|
112
|
+
rails-flavored-ruby f8e15a5 Add a full_title helper
|
113
|
+
static-pages 592d781 [origin/static-pages: ahead 1] Finish static pages
|
114
|
+
remotes/heroku/master f8e15a5 Add a full_title helper
|
115
|
+
remotes/origin/master f8e15a5 Add a full_title helper
|
116
|
+
remotes/origin/static-pages 82cb5b9 Add a Static Pages controller
|
117
|
+
```
|
118
|
+
|
119
|
+
`remotes/` で始まるブランチはリモートブランチ、それ以外はローカルブランチです。自分が今いるブランチは `*` がついてます。また、`[origin/master: ahead 1, behind 1]` はリモートブランチに対応したブランチ、ahead はローカルが先行、behind はリモートが先行していることを意味します。ここで、ahead であれば `git push`、behind であれば `git pull` を行えば同期できますが、問題は両方ある場合で、まず `git pull` してリモートの変更内容を取り込んで(コンフリクトした場合はそれを解消して)から `git push` することになります。
|
120
|
+
|
121
|
+
ブランチは消さない限り残ってますので、不採用にしたブランチでもいつでも内容を確認できますし、チェックアウトして作業を再開することもできます。
|