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

回答編集履歴

3

m

2019/11/28 12:25

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -141,7 +141,7 @@
141
141
  * | 241309b ccc
142
142
  |/
143
143
  * 41e0281 init commit
144
- ---
144
+ ```
145
145
 
146
146
  このようにtreeが分岐していることがわかると思います。余談ですが
147
147
 
@@ -154,6 +154,8 @@
154
154
 
155
155
  のようなaliasを貼っておくと便利です(上記はbashのaliasの記法)
156
156
 
157
+ ---
158
+
157
159
  > また、新しくPull Requestを作り直す際に、
158
160
  masterブランチと差分を取るために、現在Pull Requestをしているブランチからブランチを切って、その内容を引き継ぎ、masterブランチと差分をとってPull Requestをし直すという認識であっているのでしょうか?
159
161
 

2

glogar

2019/11/28 12:25

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -131,8 +131,29 @@
131
131
 
132
132
  というのが確認できましたね。一方でmerge commitのコミットメッセージは自由に設定できることも確認できたと思います。
133
133
 
134
+ もうすこし視覚的にわかりやすい確認方法も試してみましょう。
135
+
136
+ ```
137
+ $ git log --oneline --graph --all --remotes
138
+ * 47b4778 (HEAD -> master) Merge branch 'pr'
139
+ |\
140
+ | * 9e8cb91 (pr) bbb
141
+ * | 241309b ccc
142
+ |/
143
+ * 41e0281 init commit
134
144
  ---
135
145
 
146
+ このようにtreeが分岐していることがわかると思います。余談ですが
147
+
148
+ ```
149
+ alias glo='git log --oneline'
150
+ alias glog='git log --oneline --graph'
151
+ alias gloga='git log --oneline --graph --all'
152
+ alias glogar='git log --oneline --graph --all --remotes'
153
+ ```
154
+
155
+ のようなaliasを貼っておくと便利です(上記はbashのaliasの記法)
156
+
136
157
  > また、新しくPull Requestを作り直す際に、
137
158
  masterブランチと差分を取るために、現在Pull Requestをしているブランチからブランチを切って、その内容を引き継ぎ、masterブランチと差分をとってPull Requestをし直すという認識であっているのでしょうか?
138
159
 

1

実験

2019/11/28 12:24

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -5,6 +5,134 @@
5
5
 
6
6
  それはGithub上でmerge commitを作ったときに自動で生成されるcommit messageであって、実のとことmerge commitとは2つの親を持つcommitのことでありメッセージはなんでもいいのです。
7
7
 
8
+ 試しにごく小さなrepoを作って検証してみましょう。
9
+
10
+ ```
11
+ $ mkdir 226145
12
+ $ cd 226145
13
+ $ git init
14
+ Initialized empty Git repository in /home/yumetodo/226145/.git/
15
+ $ echo "aaa" > foo.txt
16
+ $ git add .
17
+ $ git commit -m "init commit"
18
+ [master (root-commit) 41e0281] init commit
19
+ 1 file changed, 1 insertion(+)
20
+ create mode 100644 foo.txt
21
+ $ git checkout -b pr
22
+ Switched to a new branch 'pr'
23
+ $ echo "bbb" >> foo.txt
24
+ $ git add .
25
+ $ git commit -m "bbb"
26
+ [pr 9e8cb91] bbb
27
+ 1 file changed, 1 insertion(+)
28
+ $ git checkout master
29
+ Switched to branch 'master'
30
+ $ echo "ccc" >> foo.txt
31
+ $ git add .
32
+ $ git commit -m "ccc"
33
+ [master 241309b] ccc
34
+ 1 file changed, 1 insertion(+)
35
+ $ git merge pr
36
+ Auto-merging foo.txt
37
+ CONFLICT (content): Merge conflict in foo.txt
38
+ Automatic merge failed; fix conflicts and then commit the result.
39
+ $ git status
40
+ On branch master
41
+ You have unmerged paths.
42
+ (fix conflicts and run "git commit")
43
+ (use "git merge --abort" to abort the merge)
44
+
45
+ Unmerged paths:
46
+ (use "git add <file>..." to mark resolution)
47
+ both modified: foo.txt
48
+
49
+ no changes added to commit (use "git add" and/or "git commit -a")
50
+ $ vim foo.txt
51
+ $ git add foo.txt
52
+ $ git commit
53
+ [master 47b4778] Merge branch 'pr'
54
+ $ git log
55
+ commit 47b47784bded011fd2fc995dfdf65938fd222ebd (HEAD -> master)
56
+ Merge: 241309b 9e8cb91
57
+ Author: yumetodo <yume-wikijp@live.jp>
58
+ Date: Thu Nov 28 21:09:59 2019 +0900
59
+
60
+ Merge branch 'pr'
61
+
62
+ Conflicts:
63
+ foo.txt
64
+
65
+ commit 241309baec09724206792951ff1d39695bd6931e
66
+ Author: yumetodo <yume-wikijp@live.jp>
67
+ Date: Thu Nov 28 21:09:10 2019 +0900
68
+
69
+ ccc
70
+
71
+ commit 9e8cb91bcf73065aab165148fb57c470f03d66e3 (pr)
72
+ Author: yumetodo <yume-wikijp@live.jp>
73
+ Date: Thu Nov 28 21:08:38 2019 +0900
74
+
75
+ bbb
76
+
77
+ commit 41e02818637789a9b987efd232ce93f56c5aa348
78
+ Author: yumetodo <yume-wikijp@live.jp>
79
+ Date: Thu Nov 28 21:07:57 2019 +0900
80
+
81
+ init commit
82
+ ```
83
+
84
+ こんなふうにrepoを造ったとき、merge commitは`47b47784bded011fd2fc995dfdf65938fd222ebd`ですよね。こいつの情報を見てみると
85
+
86
+ ```
87
+ $ git show 47b47784bded011fd2fc995dfdf65938fd222ebd
88
+ commit 47b47784bded011fd2fc995dfdf65938fd222ebd (HEAD -> master)
89
+ Merge: 241309b 9e8cb91
90
+ Author: yumetodo <yume-wikijp@live.jp>
91
+ Date: Thu Nov 28 21:09:59 2019 +0900
92
+
93
+ Merge branch 'pr'
94
+
95
+ Conflicts:
96
+ foo.txt
97
+
98
+ diff --cc foo.txt
99
+ index 959479a,dbee026..0012ca8
100
+ --- a/foo.txt
101
+ +++ b/foo.txt
102
+ @@@ -1,2 -1,2 +1,4 @@@
103
+ aaa
104
+ +ccc
105
+ + bbb
106
+ ++
107
+ ```
108
+
109
+ 一方、merge commitではないcommitを適当に見てみましょう。
110
+
111
+ ```
112
+ $ git show 241309baec09724206792951ff1d39695bd6931e
113
+ commit 241309baec09724206792951ff1d39695bd6931e
114
+ Author: yumetodo <yume-wikijp@live.jp>
115
+ Date: Thu Nov 28 21:09:10 2019 +0900
116
+
117
+ ccc
118
+
119
+ diff --git a/foo.txt b/foo.txt
120
+ index 72943a1..959479a 100644
121
+ --- a/foo.txt
122
+ +++ b/foo.txt
123
+ @@ -1 +1,2 @@
124
+ aaa
125
+ +ccc
126
+ ```
127
+
128
+ merge commitのときのみ
129
+
130
+ > Merge: 241309b 9e8cb91
131
+
132
+ というのが確認できましたね。一方でmerge commitのコミットメッセージは自由に設定できることも確認できたと思います。
133
+
134
+ ---
135
+
8
136
  > また、新しくPull Requestを作り直す際に、
9
137
  masterブランチと差分を取るために、現在Pull Requestをしているブランチからブランチを切って、その内容を引き継ぎ、masterブランチと差分をとってPull Requestをし直すという認識であっているのでしょうか?
10
138