質問編集履歴
6
わかりにくい文章の変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
gitで
|
1
|
+
gitでリモートの方がローカルよりも進んだ時のプルリクエスト・マージ・リベースに関して
|
test
CHANGED
@@ -1,16 +1,20 @@
|
|
1
|
-
### 疑問:
|
1
|
+
### 疑問:ローカルにcloneしたリポジトリを作業して、pull requestを送る際に、リモートの方も更新されてしまった時の対処方法
|
2
2
|
|
3
3
|
他社とのgitの運用が初めてで、お客様の方で用意されたgitのリモートリポジトリの構成環境でどうしたらいいのかわからず質問させていただきました。
|
4
4
|
|
5
|
+
別の関連サイトと混合になっているリポジトリがあり、自分が担当したサイトの更新をローカルで作業し、リモートリポジトリへ反映する際にどうしたら良いかわからない状況です。
|
6
|
+
|
7
|
+
|
8
|
+
|
5
|
-
`clone`して進めてくださいと言われたものの、最終的な合わせこみの段階の工程がわかりませんでした。
|
9
|
+
`clone`して進めてくださいと言われたものの、最終的なこの合わせこみの段階の工程がわかりませんでした。
|
6
10
|
|
7
11
|
|
8
12
|
|
9
13
|
調べていると、こういった共同開発でしたら、
|
10
14
|
|
11
|
-
Githubですと`Fork`という機能があって色々な解説サイトがあったのですが、
|
15
|
+
Githubですと`Fork`という機能があって`rebase`すると良いなどと色々な解説サイトがあったのですが、
|
12
16
|
|
13
|
-
先方が使っている`gitolite3`でどうしたら良いかがわかりませんでした。
|
17
|
+
先方が使っている普通のGit(`gitolite3`)でどうしたら良いかがわかりませんでした。
|
14
18
|
|
15
19
|
|
16
20
|
|
@@ -172,7 +176,7 @@
|
|
172
176
|
|
173
177
|
実際の作業者(pull requestを処理するひと)はこれを気にすることなく、`サイトB`だけを`mainのブランチ`に合わせ込むことができるのでしょうか?
|
174
178
|
|
175
|
-
また、私はどうすることが最善なのでしょうか?
|
179
|
+
また、私は先方が助かる!というような状況を作るには、どうすることが最善なのでしょうか?
|
176
180
|
|
177
181
|
|
178
182
|
|
5
文章の追加と変更(補足を増やして言葉を変えました)・作業内容のコマンドを追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
gitで1つのリポジトリ内に複数のサイトが管理されている時のプルリクエスト
|
1
|
+
gitで1つのリポジトリ内に複数のサイトが管理されている時のプルリクエスト・マージに関して
|
test
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
-
### 疑問:別の関連サイトと混合になっているリポジトリで、自分が担当したサイトを
|
1
|
+
### 疑問:別の関連サイトと混合になっているリポジトリで、自分が担当したサイトの更新をリモートリポジトリへ反映する際にどうしたら良いか
|
2
2
|
|
3
|
-
他社とのgitの運用が初めてで、お客様の方で用意されたgitの環境でどうしたらいいのかわからず質問させていただきました。
|
3
|
+
他社とのgitの運用が初めてで、お客様の方で用意されたgitのリモートリポジトリの構成環境でどうしたらいいのかわからず質問させていただきました。
|
4
4
|
|
5
|
-
|
5
|
+
`clone`して進めてくださいと言われたものの、最終的な合わせこみの段階の工程がわかりませんでした。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
調べていると、こういった共同開発でしたら、
|
10
10
|
|
11
|
+
Githubですと`Fork`という機能があって色々な解説サイトがあったのですが、
|
11
12
|
|
13
|
+
先方が使っている`gitolite3`でどうしたら良いかがわかりませんでした。
|
12
14
|
|
13
15
|
|
14
16
|
|
@@ -32,9 +34,13 @@
|
|
32
34
|
|
33
35
|
┃ ┣ サイトBの構成ファイル
|
34
36
|
|
35
|
-
┃ ┗ 私が今回あげてほしいと言われた箇所
|
37
|
+
┃ ┗ 私が今回あげてほしいと言われた箇所、
|
36
38
|
|
37
39
|
```
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
上記のような構成になっており、私は`サイトB`のディレクトリ内しか変更せず、先方は`サイトA`のディレクトリ内しか変更しません。
|
38
44
|
|
39
45
|
|
40
46
|
|
@@ -46,7 +52,7 @@
|
|
46
52
|
|
47
53
|
上記のgitのリポジトリ構成で、今回私が作業した内容を`サイトB`のディレクトリを用意したのでここに保存してほしいと言われました。
|
48
54
|
|
49
|
-
早速cloneして
|
55
|
+
早速cloneして作業を進めていますが、先方の方でも`mainブランチ`を更新し続けています。
|
50
56
|
|
51
57
|
ここで、`mainブランチ`ではなく、新しく作業用ブランチ`devブランチ`を作成して作業を進めようと考えています。
|
52
58
|
|
@@ -54,21 +60,119 @@
|
|
54
60
|
|
55
61
|
|
56
62
|
|
57
|
-
|
63
|
+
下記行った作業内容です。
|
58
64
|
|
59
|
-
私が作業している間にも、`サイトA`の更新は続きます。
|
60
65
|
|
61
|
-
私がブランチdevブランチを作り、サイトBの作業を進めて
|
62
66
|
|
63
|
-
|
67
|
+
```
|
64
68
|
|
65
|
-
|
69
|
+
# git cloneでリモートのリポジトリ内容をローカルへ取得
|
66
70
|
|
67
|
-
|
71
|
+
git clone xxx:/sample.git
|
68
72
|
|
73
|
+
|
74
|
+
|
75
|
+
# ローカルのリポジトリ作成
|
76
|
+
|
77
|
+
git init
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
# リモートリポジトリの追加
|
82
|
+
|
83
|
+
git remote add origin xxx:/sample.git
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
# 作業用ブランチの作成
|
88
|
+
|
89
|
+
git checkout -b dev
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
# サイトBの修正とコミット
|
94
|
+
|
95
|
+
git add xxxx
|
96
|
+
|
97
|
+
git commit -m "サイトB修正コミット"
|
98
|
+
|
99
|
+
```
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
この段階でリポジトリ状態は下記の状態です。
|
104
|
+
|
105
|
+
●はコミットを表しています。
|
106
|
+
|
107
|
+
```
|
108
|
+
|
109
|
+
・mainブランチ(リモート) ● -> ● ----------> ●②
|
110
|
+
|
111
|
+
①↘︎
|
112
|
+
|
113
|
+
・devブランチ(ローカル) ● -> ● -> ●③
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
①cloneしたタイミング
|
118
|
+
|
119
|
+
②先方が更新したサイトAに関するコミット
|
120
|
+
|
121
|
+
③ローカルの最新のコミット
|
122
|
+
|
123
|
+
```
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
現在はここで止まっています。
|
128
|
+
|
129
|
+
次にリモートのリポジトリに作成した`devブランチ`を`push`するのかなと思っています。
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
```
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
# devブランチをpush
|
138
|
+
|
139
|
+
git push origin dev
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
そして最後に、devブランチの内容を`pull request`するのかなと思っています。
|
148
|
+
|
149
|
+
しかし、上図の③のコミットには、②にされたサイトAのコミットは含まれていません。
|
150
|
+
|
69
|
-
`
|
151
|
+
このまま`pull request`を出すと、コンフリクトが起きてしまうのかなと思います。
|
152
|
+
|
153
|
+
これを解決する方法があるのかがわかりませんでした。
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
下記イメージ画像です。
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
![イメージ説明](f01c8aae09b193ea03c296f5ee9a2cb1.jpeg)
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
# 知りたいこと
|
166
|
+
|
167
|
+
私がローカルで`サイトB`の更新作業をしている間にも、`サイトA`の更新は続きます。
|
168
|
+
|
169
|
+
ローカルで作成した`ブランチdev`をどのようにしてリモートの`mainブランチ`と合わせていけばいいのかがわかりません。
|
170
|
+
|
171
|
+
私側では`サイトA`は、一切関与しないので、ローカルで作業を進めている間にリモートリポジトリは更新され、最終的に`mainブランチ`と`devブランチ`うを合わせる時に`mainブランチ`の作業が進んだ分衝突が発生してしまうのでは?と思うのですが、
|
70
172
|
|
71
173
|
実際の作業者(pull requestを処理するひと)はこれを気にすることなく、`サイトB`だけを`mainのブランチ`に合わせ込むことができるのでしょうか?
|
174
|
+
|
175
|
+
また、私はどうすることが最善なのでしょうか?
|
72
176
|
|
73
177
|
|
74
178
|
|
4
補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,18 +1,26 @@
|
|
1
1
|
### 疑問:別の関連サイトと混合になっているリポジトリで、自分が担当したサイトをマージするとどうなるのか?
|
2
2
|
|
3
3
|
他社とのgitの運用が初めてで、お客様の方で用意されたgitの環境でどうしたらいいのかわからず質問させていただきました。調べてみると、根本的に下記構成の`サイトA`と`サイトB`のリポジトリを分離しないのが間違っているのでは?と思ったのですが、そう言うわけにもいかずやるしかないので実際どうなってしまうのか迷っています。
|
4
|
+
|
5
|
+
下記イメージ画像です。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
![イメージ説明](f01c8aae09b193ea03c296f5ee9a2cb1.jpeg)
|
10
|
+
|
11
|
+
|
4
12
|
|
5
13
|
|
6
14
|
|
7
15
|
# gitの構成に関して
|
8
16
|
|
9
|
-
gitのディレクトリ構成が下記のようになっています。(先方が使っているので、構成を変えれない)
|
17
|
+
gitのリモートリポジトリのディレクトリ構成が下記のようになっています。(先方が使っているので、構成を変えれない)
|
10
18
|
|
11
19
|
|
12
20
|
|
13
21
|
```
|
14
22
|
|
15
|
-
リポジトリ sample
|
23
|
+
リポジトリ sample.git
|
16
24
|
|
17
25
|
┣ サイトA
|
18
26
|
|
@@ -27,6 +35,8 @@
|
|
27
35
|
┃ ┗ 私が今回あげてほしいと言われた箇所
|
28
36
|
|
29
37
|
```
|
38
|
+
|
39
|
+
|
30
40
|
|
31
41
|
|
32
42
|
|
3
文章を構成し直しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,7 +48,13 @@
|
|
48
48
|
|
49
49
|
私が作業している間にも、`サイトA`の更新は続きます。
|
50
50
|
|
51
|
+
私がブランチdevブランチを作り、サイトBの作業を進めて
|
52
|
+
|
51
|
-
|
53
|
+
私は`サイトB`しか更新しないのですが、最終的に`サイトA`を更新し続けている`mainブランチ`に`サイトB`の更新をマージをした時に
|
54
|
+
|
55
|
+
`サイトA`は`作業ブランチdev`を分岐した時よりも進んでいるので差分が発生するのかと思いましたが、
|
56
|
+
|
57
|
+
先方側ではどうなってしまうのでしょうか?
|
52
58
|
|
53
59
|
`サイトA`は、一切関与しないので作業が進んだ分衝突が発生してしまうのでは?と思うのですが、
|
54
60
|
|
2
追加補足と、間違っていた用語を修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
gitで1つのリポジトリ内に複数のサイトが管理されている時のプ
|
1
|
+
gitで1つのリポジトリ内に複数のサイトが管理されている時のプルリクエストのマージに関して
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
### 疑問:別の関連サイトと混合になっているリポジトリで、自分が担当したサイトを
|
1
|
+
### 疑問:別の関連サイトと混合になっているリポジトリで、自分が担当したサイトをマージするとどうなるのか?
|
2
2
|
|
3
|
-
他社とのgitの運用が初めてで、お客様の方で用意されたgitの環境でどうしたらいいのかわからず質問させていただきました。調べてみると、根本的に分離しないのが間違っているのではと思ったのですが、そう言うわけにもいかず迷っています。
|
3
|
+
他社とのgitの運用が初めてで、お客様の方で用意されたgitの環境でどうしたらいいのかわからず質問させていただきました。調べてみると、根本的に下記構成の`サイトA`と`サイトB`のリポジトリを分離しないのが間違っているのでは?と思ったのですが、そう言うわけにもいかずやるしかないので実際どうなってしまうのか迷っています。
|
4
4
|
|
5
5
|
|
6
6
|
|
1
メインブランチに関しての補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,6 +32,8 @@
|
|
32
32
|
|
33
33
|
# 詳細
|
34
34
|
|
35
|
+
`サイトA`は`mainブランチ`で作業が進められています。
|
36
|
+
|
35
37
|
上記のgitのリポジトリ構成で、今回私が作業した内容を`サイトB`のディレクトリを用意したのでここに保存してほしいと言われました。
|
36
38
|
|
37
39
|
早速cloneしてみてみたところ、現在進行形で`サイトA`が更新されていました。
|