鍍金池/ 問答/Linux/ 關(guān)于Git的問題,文件互相覆蓋問題

關(guān)于Git的問題,文件互相覆蓋問題

問題1:

用戶A和B,文件a,同一個branch
用戶A先pull(時間為12:00),再編輯文件a,再commit和push,push時間為13:00
用戶B先pull(時間為12:00),再編輯文件a,再commit和push,push時間為13:01

請問最后repo里面的文件a完全是用戶B的,還是兩位用戶共同的修改成果都存在?

問題2

用戶A和B,文件b,同一個branch
用戶B提交了一個修改文件b的commit和push(時間為14:00)
用戶A開始pull(時間為14:01),但是發(fā)現(xiàn)報錯了,提示本地有commit未同步,于是把手頭的文件b的修改commit掉,然后再pull,成功,然后再merge,最后push出去

請問此時repo里面的文件b,有沒有包含了用戶A和B兩個人的修改成果?

回答
編輯回答
清夢

問題 1:

用戶B 會 push 出錯,原因是 repo 的提交已經(jīng)領(lǐng)先 B 本地的倉庫。解決方法如你的問題 2,B 需要先 pull,合并后再 push

問題 2:

repo 最后是 B 合并后的結(jié)果


其實,這種問題,自己動手操作一下會了解的更清晰

2018年5月3日 23:44
編輯回答
命多硬

問題1 都有
問題2,看不懂

用戶B提交了一個修改文件b的commit和pull(時間為14:00)

這里是pull?我怎么覺得是push
OK,如果這里是pull,那B的commit沒有push,那那么A pull commit merge push ,最后遠端是只有A的

這些前提是a和b改的代碼不沖突,如果沖突了,改了同一片代碼塊,就以問題1為例,B在14.01分push的時候會先提示你有新的push要先pull下來(這是正常的,不管沖不沖突都會有,我猜你可能忘寫了),B在pull下來后會報沖突,要修復(fù)了這個沖突(比如修改沖突的代碼塊),讓才能成功push

2018年3月24日 00:36