[請益] 請問這樣的git用法對不對
我想我對git應該還有些地方不夠了解 所以才會有這樣的疑問
我的疑問大致是 假如有A和B二個人 都同時把某個branch (假設branch_1) 從某
個相同的commit A 開始 抓到local 來修改
remote ---------(A)
A ---------(A)
B ---------(A)
假如B先作了一個修改(B) commit 和push 回branch_1 (B),
fast forward,這沒問題,B接著又作了一些修改(C),而A自從抓回(A)後也作了修改(D)
remote ---------(A)-----------(B)
A ---------(A)--------(D)
B ---------(A)-----------(B)-----(C)
A改完(D)後要commit時conflict,這種時候很多人是pull remote 回來,然後再commit ,
如下
remote ---------(A)--------(D)----(merge1)
\----------(B)---/
A ---------(A)--------(D)----(merge1)
\----------(B)---/
B ---------(A)-----------(B)-----(C)
這時感覺就有點奇怪了,因為照裡說(B)那條線應該算是主幹,可是A local pull,時就會把
主幹搶過來,好像河流支流變主幹一樣
雖然說以拓撲上來說,(B)和(D)哪個是主幹,有人會說只是github之類工具圖形呈現的方式,
但似乎不是這樣,因為在log 裡 (merge1) 會有二個parent commit,而順序上(D)那條
會變主要的parent commit
而B的(C)要commit 前也必須先pull merge remote回來,再push,就變成(C)那條又變
主幹,把(D)搶走,如下
remote ---------(A)--------------------(C)--------(merge2)
\ \----------(B)----------\ /
\---------(D)---------(merge1)----/
A ---------(A)--------(D)----(merge1)
\----------(B)---/
B ---------(A)--------------------(C)--------(merge2)
\ \----------(B)----------\ /
\---------(D)---------(merge1)----/
這裡誰是主幹誰是支流,應該不只是tool呈現方式而已
(因為有人會說,我把(B)那條拉直看不就(B)從頭到尾都是主幹了?)
因為merge commit裡,順序第一的parent commit算是主幹,git 的概念應該是這樣沒錯吧
因此很多visualize的tool也會照我上面畫,整個線就會被拉來拉去的
####################################################
我想問的是,這種push 前先pull merge,造成主線拉來拉去的狀況,是否是個問題,
如果是問題的話,有人會說,不然你push前不先pull,那remote有修改你要怎麼作?
其實我也不太確定,也許另拉一個開發用的branch是個方法?
不知道我上面的提問大家能否看得懂,盡量畫的和說明的易懂了
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.68.252.87
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1466243276.A.1C7.html
※ 編輯: pttdocc (219.68.252.87), 06/18/2016 17:49:59
→
06/18 17:53, , 1F
06/18 17:53, 1F
推
06/18 17:55, , 2F
06/18 17:55, 2F
→
06/18 17:55, , 3F
06/18 17:55, 3F
→
06/18 17:56, , 4F
06/18 17:56, 4F
→
06/18 17:57, , 5F
06/18 17:57, 5F
→
06/18 17:57, , 6F
06/18 17:57, 6F
→
06/18 17:58, , 7F
06/18 17:58, 7F
→
06/18 17:58, , 8F
06/18 17:58, 8F
→
06/18 17:58, , 9F
06/18 17:58, 9F
→
06/18 17:58, , 10F
06/18 17:58, 10F
→
06/18 17:59, , 11F
06/18 17:59, 11F
→
06/18 18:08, , 12F
06/18 18:08, 12F
推
06/18 18:39, , 13F
06/18 18:39, 13F
推
06/18 18:51, , 14F
06/18 18:51, 14F
→
06/18 18:52, , 15F
06/18 18:52, 15F
推
06/18 19:03, , 16F
06/18 19:03, 16F
→
06/18 19:04, , 17F
06/18 19:04, 17F
推
06/18 19:23, , 18F
06/18 19:23, 18F
→
06/18 19:23, , 19F
06/18 19:23, 19F
→
06/18 19:24, , 20F
06/18 19:24, 20F
推
06/18 19:25, , 21F
06/18 19:25, 21F
推
06/18 21:14, , 22F
06/18 21:14, 22F
※ 編輯: pttdocc (219.68.252.87), 06/18/2016 21:41:02
→
06/18 21:44, , 23F
06/18 21:44, 23F
→
06/18 22:02, , 24F
06/18 22:02, 24F
推
06/18 22:13, , 25F
06/18 22:13, 25F
→
06/18 22:13, , 26F
06/18 22:13, 26F
→
06/18 22:13, , 27F
06/18 22:13, 27F
→
06/18 22:15, , 28F
06/18 22:15, 28F
推
06/19 00:23, , 29F
06/19 00:23, 29F
推
06/19 00:26, , 30F
06/19 00:26, 30F
推
06/19 00:28, , 31F
06/19 00:28, 31F
推
06/19 01:40, , 32F
06/19 01:40, 32F
→
06/19 01:47, , 33F
06/19 01:47, 33F
→
06/19 01:47, , 34F
06/19 01:47, 34F
→
06/19 01:48, , 35F
06/19 01:48, 35F
推
06/19 02:00, , 36F
06/19 02:00, 36F
→
06/19 02:00, , 37F
06/19 02:00, 37F
→
06/19 02:00, , 38F
06/19 02:00, 38F
推
06/19 02:03, , 39F
06/19 02:03, 39F
推
06/19 02:12, , 40F
06/19 02:12, 40F
推
06/19 02:19, , 41F
06/19 02:19, 41F
推
06/19 02:25, , 42F
06/19 02:25, 42F
→
06/19 02:26, , 43F
06/19 02:26, 43F
→
06/19 09:02, , 44F
06/19 09:02, 44F
推
06/19 09:03, , 45F
06/19 09:03, 45F
→
06/19 09:58, , 46F
06/19 09:58, 46F
推
06/19 10:36, , 47F
06/19 10:36, 47F
推
06/19 10:41, , 48F
06/19 10:41, 48F
推
06/19 13:49, , 49F
06/19 13:49, 49F
推
06/19 14:06, , 50F
06/19 14:06, 50F
推
06/19 14:16, , 51F
06/19 14:16, 51F
→
06/19 14:29, , 52F
06/19 14:29, 52F
→
06/19 14:31, , 53F
06/19 14:31, 53F
噓
06/19 14:32, , 54F
06/19 14:32, 54F
→
06/19 14:32, , 55F
06/19 14:32, 55F
推
06/19 15:08, , 56F
06/19 15:08, 56F
推
06/19 16:14, , 57F
06/19 16:14, 57F
→
06/19 16:15, , 58F
06/19 16:15, 58F
→
06/19 16:15, , 59F
06/19 16:15, 59F
→
06/19 16:15, , 60F
06/19 16:15, 60F
→
06/19 16:15, , 61F
06/19 16:15, 61F
→
06/19 16:15, , 62F
06/19 16:15, 62F
→
06/19 16:27, , 63F
06/19 16:27, 63F
→
06/19 18:00, , 64F
06/19 18:00, 64F
→
06/19 18:00, , 65F
06/19 18:00, 65F
→
06/19 18:00, , 66F
06/19 18:00, 66F
→
06/19 18:00, , 67F
06/19 18:00, 67F
→
06/19 18:02, , 68F
06/19 18:02, 68F
→
06/19 18:02, , 69F
06/19 18:02, 69F
→
06/19 18:03, , 70F
06/19 18:03, 70F
→
06/19 18:24, , 71F
06/19 18:24, 71F
→
06/19 18:26, , 72F
06/19 18:26, 72F
→
06/19 18:45, , 73F
06/19 18:45, 73F
→
06/19 18:45, , 74F
06/19 18:45, 74F
→
06/19 18:55, , 75F
06/19 18:55, 75F
→
06/19 18:55, , 76F
06/19 18:55, 76F
→
06/19 18:56, , 77F
06/19 18:56, 77F
→
06/19 18:57, , 78F
06/19 18:57, 78F
→
06/19 18:58, , 79F
06/19 18:58, 79F
→
06/19 18:59, , 80F
06/19 18:59, 80F
推
06/20 21:46, , 81F
06/20 21:46, 81F
推
06/22 03:43, , 82F
06/22 03:43, 82F
→
06/22 03:43, , 83F
06/22 03:43, 83F
→
06/22 03:43, , 84F
06/22 03:43, 84F
→
06/22 03:43, , 85F
06/22 03:43, 85F